2013-06-16 9 views
0

cpuFALLING 에지가 트리거되도록 "컨트롤 유닛 다음 상태 레지스터"를 가져야합니까?

각 모듈은 전원이 다음으로 간주 될 수 [1]의 데이터를 저장할 수있다. [2] 데이터를 조작 할 수 있습니다. (산술 연산)

모듈의 일부 속성 (지금 나와 관련 있습니다.) [1] 모듈의 모든 레지스터/메모리 요소가 RAISING edge입니다. 트리거 됨.

이제이 아키텍처를 사용하여 컴퓨터 프로세서 모델을 생성 할 수 있습니다.

실제 거래 : "컨트롤 유닛 다음 상태 레지스터"가 트리거 될 수 있습니까? (그렇게 생각하는 이유는 아래 설명)

 
CLOCK: 
    |------|   |------|[1]  |------|   |------|  
_____|  |_________|  |_________|  |_________|  |____  
        |----| 
       Data should be valid in this region at least.(considering the setup/hold time). 
      |----------------|[1] 
____________|    |_________ 
So the write signal should be up (if control unit want to) in this region. 

이 제어 신호 입력 및 현재 상태를 바로 conbinational 결과이다. SO는 현재 상태가 제어 신호의 변경으로 변경됨을 의미하며 이는 하강 에지 [1]에서 상태가 변경되어야 함을 의미합니다. 그래서 상태 변경은 단순히 클럭의 하강 에지에서 발생하는 "컨트롤 유닛 상태 레지스터"의 변화입니다. 내가 왜 "제어 장치를 다음 상태 레지스터로 가져야 할 필요가있는 것"이라고 생각하는 이유는 무엇입니까? .... 나는 생각/생각하는 것이 맞습니까?

그렇다면 실제 프로세서에서도 동일한 (제어 장치 상태 레지스터를 트리거 한 하강 에지) 현상이 발생해야합니다.

나는 "가져 오기"주기를 트리거 클럭의 상승 에지를 고려하는 것이 나의 실수 수정 +이 처리하는

답변

0

일반적인 방법을 용서해주십시오 물건입니다 배우고, 및 하강 "은을 트리거 실행 "합니다.

메모리 주소가 증가하고 메모리의 데이터가 안정화되어 제어 회로 (ALU 설정, 디멀티플렉서 제어, 조건부 테스트의 멀티플렉서 샘플 상태, 시프트 로직 설정, 기타).

"실행"하는 동안 제어 회로 출력에 의해 제어되는 사항이 트리거됩니다 (예 : 멀티플렉서가 읽는 테스트 상태가 테스트 됨). 참이면 프로그램 카운터에 분기 주소를로드하여 분기를 수행 할 수 있습니다 그래서 다음 페치 사이클 동안 시스템은 단순히 메모리의 다음 주소로 증가하는 대신 분기 주소에서 다음 명령을로드합니다.

대답 : 관대 한 사람 "BL"(이름 이니셜)

+0

논리적으로 의미가 있습니다. 하지만 어떻게 구현할 것인가 ... 페치 상태를위한 별도의 "제어 장치 다음 상태 레지스터"와 상태 레지스터를 선택하는 멀티플렉서가 필요합니다. 이것은 페치 사이클에서만 시계 사이클의 절반 만 저장합니다. – Bhuvan