728x90
Control Memory
- Microoperation의 순서를 제어
- 다른 명령어 = 다른 Microoperation
- Hardwired Control : 논리회로 설계에 의한 signal contol
- Microprogram : SW적으로 signal control
- 메모리에 control 신호를 저장하여 호출
- hardwired 대비 유연한 제어가 가능하다
- control function
- LD, INC, CRL 등 binary information (Control word라고 부름)
- control word는 control memory 내에 저장
Address Sequencing
-
Control Unit을 Control Memory + 메모리 순회를 위한 Logic으로 대체
- Control Address Register : Control Memory를 가리키는 register
-
MicroOperation의 동작
- 명령어 Fetch-Decode 후 실제 명령어가 동작
- Opcode 값에 의해 동작 내용이 달라짐
-
Instruction Mapping
- opcode를 memory 주소 형식으로 바꾸는 것
- ex. opcode가 XXXX >> 0XXXX00의 형태로 address 반환
- HW configuration Example
- 버스를 사용하지 않음
- IR 레지스터가 없음
- AC, PC, 메모리 > DR
- PC, DR > AR
- AR > PC
- DR > 메모리
- DR, AC의 Microoperation 결과 > AC
- 명령어는 I(1) + Opcode(4) + Address(11)로 구성되어있음을 가정
- Add(0000), Branch(0001), Store(0010), Exchange(0011, AC와 Memory 데이터를 교환)의 4가지 명령어를 가정
- Control Word Format
- F1/F2/F3 (각 3bit) : Microoperation field
- CD(2bit) : Branch Condition
- 00 : always
- 01 : Indirect
- 10 : AC sign bit
- 11 : AC zero
- BR(2bit) : Branch field / CD 조건 만족시 동작
- 00 : JMP
- 01 : CALL
- 10 : Return
- 11 : Map
- AD(7bit) : Address field
- 총 20bit 크기
Microprogram example
- fetch routine
- PCTAR U JMP NEXT : PC 정보를 AR로, 다음 명령 수행
- READ, INCPC U JMP NEXT : 메모리 정보를 DR로 읽고, PC를 1 증가시킨 후 다음 명령 수행
- DRTAR U MAP : DR 정보를 AR로 이동시킨 후, DR opcode를 CAR에 메모리 양식에 맞게 Mapping
- Add
- NOP I CALL INDRCT : 동작은 하지 않고, Indirect인 경우 INDRCT 주소를 불러온다.
- READ U JMP NEXT : 메모리 값을 AC로 불러온 후 다음으로 진행
- ADD U JMP FETCH : DR값을 AC에 더해준 후 FETCH operation으로 이동
- Microprogram sequencer
- CD값과 1, I, S, Z에 따라 Test 출력 결정 (1 = Unconditional Branch)
- I0, I1 : Branch code
728x90