본문 바로가기
  • All Access to Logical Insight
시스템반도체공학도를 위한 필수 지침서/Computer Architecture

Computer Architecture - Lecure 7: Von Neumann Model & Instruction Set Architectures

by famousgun 2024. 3. 2.

강의 목표

  •  Von Neumann Model
  • LC-3, MIPS ISA
  • LC-3, MIPS assembly and programming
  • 추상화 수준 높여서 강의 예정 (6강은 Gates/ Registers , Logic 을 학습했다면, SW/HW interface, Micro-architecture  학습, 프로그래머가 기본 요소 수정하는 작업을 어떻게 보고 조작하는지)

LC-3: 교육용 ISA architecture

MIPS: 일부 실제 system 에 사용되는 ISA architecture

  • 실제 CPU 내부는 매우 low lovel에서 작동
  • 프로그래머는 instruction을 사용하여 직접 조작할 수 없음. 더 높은 추상화 수준(c, c++,python) 사용
  • GPU, accelator도 마찬가지 // 프로그래머는 CUDA, OPENCL과 같은 특수 API 사용해 병렬 계산 실행 ->즉, 프로그래머는 high level의 프로그래밍된 interface 사용

[Von Neumann Model]

- Von Neumann Model은 5가지 components로 구성됨 

 

Memory Unit

  • 메모리는 data, Program 저장
  • 메모리는 bit를 포함함 (bit는 bytes (8bit) 또는 word (different by architecture)
  • Address space: 메모리 내에서 unique하게 구별가능한 location의 수
  • Addressability: 각 location(address)당 저장할 수 있는 bit수

 

     Word- addressable memory: data worduniqueaddress를 가짐
     - > word 0
의 부분 데이터만 읽고 싶어도 00000000주소의 word 0을 통째로 읽어야함

 

Word- addressable memory

 

 

        Byte- Addressable Momory: 각각의 byteuniqueaddress를 갖는다.
       -> data
byte단위로 읽을 수 있다.
       -> address
4 단위로 늘어남. 이는 word0 data4 bytes 씩 쪼개져서 unique한 주소를 가질 수 있기 때문

Byte- Addressable Momory

 

Big Endian, Little Endian (관례, 마치 자동차 운전대 어떤 나라는 왼쪽, 오른쪽)

  • 다른 system과 통신할 때 중요함

 

Accessing Memory에는 2가지 방식이 있음

1.     Memory loacation으로부터 data읽거나 load하는 것

2.     Memory location으로부터 data를 쓰거나 저장하는 것

 

Memory를 접근하는 데 두 register사용

  • MAR: 주소에 연결하기 위해 해당 register필요
  • MDR: 메모리에 data를 입력 or 출력

To read

  • 1) MAR에 읽고자 하는 주소를 load
  • 2) 해당 주소에 해당하는 dataMDR에 적재

To write

  • 1) MAR에 주소를 load하고 MDR에 data를 load
  • 2) Write Enable (WE) 신호를 활성화시키고 MDR에 있는 데이터를 MAR에 있는 주소에 저장한다.

=> 이는 1 cycle 내에 이뤄져야함. (cycle 내에 write 한번이 실행되면 다음 cycle에서는 또 다른 data에 대한 read 가 실행되는 등 combinational한 실행이 이루어지는 것임)

-> registerdata를 인식하는 충분한 시간(setup, hold time)이 필요하기 때문에 timing verification이 중요함


 

Processing Unit

  • ALU, Tem
  • ALU에서 실행할 수 있는 연산은 ISA에 의해 결정되므로 컴퓨팅 모델들마다 다름
  • ALU는 Word 단위로 처리
  • Tem (Fast Temporary Storage) : data의 임시저장 공간, Register file 이라고도 불림. ALU의 중간 결과는 temporary storage 에 저장됨 왜냐하면 각 ALU 결과를 메모리에 저장하기엔 속도가 너무 느림
  • 통상적으로 하나의 register에는 하나의 word가 구성됨 (same as word length)
  • Register fileHW instruction에 따라 다름
  • 메모리 access는 매우 느림 (150ns, 200ns) 반면에 addition, multipilication or division은 빠름 (2ns, 1ns 미만// tem에 임시 저장되기 때문)
  • Register file은 프로그래머가 볼 수 있음. 프로그래머는 더 높은 수준(assembly level) 에서 프로그래밍하므로 register에 할당되는 이름 있음.
  • Register는 어떻게 구성?
    -> HW 설계자는 만약 16bit Register라면, 16개의 D latches 혹은 D Flip-Flop 연결하면 됨 (D F/F가 좀 더 유리함. 왜냐면 보통 연산이나 logic은 모두 cycle을 기준으로 이루어지기 때문)

Control Unit

: 지휘자, 프로그램을 실행하는 데 process를 단계별로 지휘하고 감독함

  •  IR (Instruction Register): 현재 instruction을 저장하는 register. IR을 통해서 어떤 instruction이 실행되는지 트랙킹 할 수 있음.
  • PC or IP(Instruction Pointer): 다음 instruction 주소를 담고 있는 register. 이를 통해 다음 instruction을 트랙킹 할 수 있음.

 


Programmer Visible (Architectural) State

: instructions을 수행하는 과정에서 value들이 어떻게 바뀌는지 어떻게 바뀌게 할건지를 프로그래머가 보고 수정하도록 할 수 있음

Ex 1) 메모리의 경우, unique한 주소에 의해 locationindexing -> 메모리 공간 내의 datavisible

EX 2) register의 경우, ISA에서 용도별로 특별한 이름 주고 주소를 주어 직접 참조할 수 있게 함.

 


폰 노이만 모델 중요한 핵심 특성 2가지

1.     Stored Program

-      Instruction이 메모리 배열에 저장되어 있음

2.     Sequential instruction Processing

-      Program counter에 의해 현재 instruction이 끝나면 다음 instruction이 실행되고 또 다음이 실행됨 즉, processe가 순차적으로 실행됨0

 

참고:https://www.youtube.com/watch?v=QXhTd5LP8pM

https://blog.naver.com/ektjf731/223031832071