728x90
Control Memory

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

+ Recent posts