Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 4 The Von Neumann Model.

Similar presentations


Presentation on theme: "Chapter 4 The Von Neumann Model."— Presentation transcript:

1 Chapter 4 The Von Neumann Model

2 The Stored Program Computer
1943: ENIAC Presper Eckert and John Mauchly – 최초의 범용 전자 컴퓨터 Hard-wired program – 다이얼과 스위치 조작 1944: Beginnings of EDVAC 프로그램을 메모리에 저장할 수 있는 기능 개선이 이루어짐 1945: John von Neumann “The First Draft of a Report on EDVAC”이라는 문서를 통해 “Stored Program” 개념 발표 Draft에서 설명한 기본 구조  Von Neumann Machine (or Model)로 불림. Von Neumann Machine (or Model) Memory : 명령과 데이터 포함 Processing Unit : 산술 및 논리 연산의 수행 Control Unit : 명령의 해석 For more history, see

3 Von Neumann Model

4 https://en.wikipedia.org/wiki/Von_Neumann_architecture

5 John von Neumann (출처 Wikipedia)
생애 1903년 헝가리 부다페스트에서 부유한 유대인 은행가의 장남으로 출생 1926년 23세의 나이로 부다페스트 대학 수학 박사 학위 취득, 1930년까지 베를린 훔볼트 대학에서 강사 생활 1930년 프린스턴 고등연구소로 초청을 받아 미국으로 건너가 고등연구소의 최초 4명의 교수진 중에 한 명이 됨. 이후 죽을 때까지 고등연구소의 수학 교수로 활동 2차 대전 기간 핵무기 개발을 위한 맨하탄 프로젝트 참여, 핵무기 개발에 지대한 기여, 최초의 핵폭파 실험을 직접 관찰한 소수의 과학자 중 한 사람, 이후 미 정부의 대륙간탄도탄(ICBM) 위원회에 참여, 반공 보수주의자로 적극적인 핵무기 옹호자, 균형 이론에 기초하여 그가 주장한 상호 확증 파괴, 즉 MAD(Mutually Assured Destruction)는 냉전 시기 미, 소의 핵무기 전략이었음. 1957년 방사능이 원인으로 추정되는 골수암에 걸려서 사망 지상 최강의 천재로 알려진 존 폰 노이만은 너무 머리가 좋아서 화성인, 악마의 두뇌를 가진 남자라고 불리웠음. 7개의 외국어를 모국어 같이 자유자재로 사용할 수 있었으며, 발음 또한 완벽하다고 전해짐. 역사상 가장 뛰어난 기억력을 가진 인물로 평가되는데 훈련이 아니라 타고난 능력. 양자 물리학, 함수 해석학, 집합 이론, 컴퓨터 과학, 경제학 등의 분야에서 다수의 중요한 공헌을 하였음. 게임 이론의 창시자. DNA/RNA 발견 이전에 그 존재를 예측한 Cellular Automata / Universal Constructor 개념의 창시자. 그의 천재성과 관련한 수많은 일화들이 있음. (참고 1, 참고 2) EDVAC이 완성되어 시험을 하게 되었다. 누군가 “오른쪽에서 4번째 자리수가 7인 가장 작은 2의 지수는 얼마인가?” 컴퓨터와 폰 노이만이 동시에 문제를 풀기 시작했고 폰 노이만이 먼저 풀어 승리하였다.

6 Memory 2 𝑘 ×𝑚 array of stored bits Address Contents Basic Operations:
𝑘 bit 길이의 위치 식별자 (오른쪽 그림: k=4) Contents 저장되어 있는 𝑚 bit 길이의 값 (오른쪽 그림: m=8) Basic Operations: LOAD 해당 메모리 주소에 저장되어 있는 값을 읽는 연산 STORE 해당 메모리 주소에 값을 쓰는 연산 0000 0001 0010 0011 0100 0101 0110 1101 1110 1111

7 Interface to Memory How does processing unit get data to/from memory?
MAR: Memory Address Register MDR: Memory Data Register To LOAD a location (A): MAR에 주소 (A)를 쓴다. 메모리로 “read” 신호를 보낸다. MDR에서 값을 읽는다. To STORE a value (X) to a location (A): MDR에 값 (X)를 쓴다. 메모리로 “write” 신호를 보낸다.. 0000 0001 0010 0011 0100 0101 0110 1101 1110 1111

8 Processing Unit Functional Units Registers (TEMP) Word Size
ALU = Arithmetic and Logic Unit 연산을 위한 많은 Functional Unit들을 포함 그 중 일부는 곱셈, 제곱근 연산 등 특정 기능을 수행 LC-3 의 경우 ADD, AND, NOT 기능 포함 Registers (TEMP) 작은 크기의 임시 저장소 Functional Unit 과 관련한 인자(Operands)와 연산 결과를 저장 LC-3 의 경우 각각 16 bits 길이의 8개 레지스트 포함 (R0, …, R7) Word Size ALU에서 수행하는 하나의 명령에서 일반적으로 처리하는 비트의 수 하나의 레지스터가 가지는 저장 공간의 크기 LC-3 의 경우 16 bits

9 Input and Output Devices for getting data into and out of computer memory 각 입출력 장치들은 메모리의 MAR, MDR 같은 자체 인터페이스를 가짐. LC-3는 입력으로 키보드, 출력으로 모니터 지원 키보드 : 데이터 레지스터 (KBDR), 상태 레지스터 (KBSR) 모니터 : 데이터 레지스터 (DDR), 상태 레지스터 (DSR) 입력과 출력을 모두 제공하는 장치들도 있음. 예) 디스크, 네트워크 장치 접근을 제어하는 프로그램을 “Driver” (장치제어기)라고 함.

10 Control Unit Orchestrates execution of the program
Instruction Register (IR) : 현재 명령(current instruction) 있음 Program Counter (PC) : 다음에 수행하여야 할 명령의 주소 있음 Control unit: 메모리로부터 명령(instruction)을 읽는다. 읽어야 할 명령의 주소는 PC에 저장되어 있음. 명령을 해석하고 명령 수행을 위해 다른 구성 요소들을 제어할 신호 발생 하나의 명령은 수행 완료를 위해 여러 차례의 machine cycle이 필요할 수 있음.

11 Instruction Processing
Fetch instruction from memory Decode instruction Evaluate address Fetch operands from memory Execute operation Store result

12 Instruction 명령은 작업의 기본 단위 Specifies two things:
opcode : 수행하여야 할 연산 (op=operation) operands : 연산에 쓰이는 데이터 및 주소 명령은 데이터와 같이 비트열(sequence of bits)로 표현됨 명령은 일반적으로 16 bits 또는 32 bits 와 같은 고정 길이를 가짐. Control Unit 은 명령을 해석하고 그 수행을 위한 일련의 제어 신호를 발생시킴 하나의 연산은 완전히 수행 되거나, 전혀 수행 되지 않거나 둘 중 하나 ISA (Instruction Set Architecture) 어떤 컴퓨터의 명령과 그 형식을 지정한 것

13 Example: LC-3 ADD Instruction
LC-3 : 16-bit 명령 각 명령은 bits [15:12] 범위의 4 비트 길이의 opcode 가짐. LC-3 : 임시 저장소 역할을 하는 8개의(R0-R7) 레지스터 가짐 다음 ADD 명령의 Sources와 Destination은 레지스터임 “Add the contents of R2 [Src1, 8:6, 010] and the contents of R6 [Src2, 2:0, 110] and store the result in R6 [Dst, 11:9, 110]”. * 010 (binary) = 2 (decimal), 110 (binary) = 6 (decimal)

14 Example: LC-3 LDR Instruction
Load instruction : 메모리에서 값을 읽는 명령 Base + offset mode: Base 레지스터 값에 Offset을 더함  결과는 메모리 주소 해당 메모리 주소에서 값을 읽어와 Destination 레지스터에 저장 “Add the value 6 [Offset, 5:0, ] to the contents of R3 [Base, 8:6, 011] to form a memory address. Load the contents of that memory location to R2 [Dst, 11:9, 010]”

15 Instruction Processing: FETCH
Load next instruction (at address stored in PC) from memory into Instruction Register (IR). PC에 저장된 값을 MAR에 복사한다. 메모리로 “read” 신호를 보낸다. MDR에 저장된 값을 IR로 복사한다. Then increment PC, so that it points to the next instruction in sequence. PC becomes PC+1. F D EA OP EX S

16 Instruction Processing: DECODE
먼저 Opcode를 식별한다. LC-3의 경우 명령의 첫 4 비트[15:12]에 Opcode가 있음. 모두 16가지의 서로 다른 Opcode 존재 가능 4-to-16 Decoder 활용하여 Opcode 식별 가능 Opcode에 따라 나머지 인자를 식별 예) LDR - 마지막 6비트는 Offset (14 쪽) 예) ADD – 마지막 3비트는 두번째 source operand (13 쪽) F D EA OP EX S

17 Instruction Processing: EVALUATE ADDRESS
메모리 Access가 필요한 명령의 경우 Access를 위한 메모리 주소 값 계산 예) add offset to base register (as in LDR) add offset to PC add offset to zero F D EA OP EX S

18 Instruction Processing: FETCH OPERANDS
연산 수행에 필요한 Source Operand 값 가져오기 예) Load data from memory (LDR) Read data from register (ADD) F D EA OP EX S

19 Instruction Processing: EXECUTE
가져온 Source Operand에 대해 연산 수행 예) send operands to ALU and assert ADD signal do nothing (e.g., for loads and stores) F D EA OP EX S

20 Instruction Processing: STORE RESULT
Destination (레지스터 또는 메모리)에 결과 쓰기 예) result of ADD is placed in destination register result of memory load is placed in destination register for store instruction, data is stored to memory write address to MAR, data to MDR assert WRITE signal to memory F D EA OP EX S

21 Changing the Sequence of Instructions
FETCH 단계에서 PC 값은 1 만큼 증가. 다음에 실행하기를 원하는 명령이 1만큼 증가한 PC가 가리키고 있는 명령이 아닌 다른 명령인 경우는 ? 예) loop, if-then, function call PC 값을 바꿀 수 있는 특별한 명령이 필요함. 이러한 명령을 control instructions. jumps are unconditional : 항상 PC 값을 바꿈. branches are conditional : 특정 조건이 만족하는 경우에만 PC 값을 바꿈. 예) ADD 결과가 0 인 경우에만 PC 값을 바꿈.

22 Example: LC-3 JMP Instruction
레지스터에 저장된 값으로 PC 값을 변경 변경된 PC는 다음에 Fetch하여야 할 명령의 주소를 가짐. “Load the contents of R3 [Base, 8:6, 011] into the PC.” * IR의 [11:9, 000]과 [5:0, ]는 JMP 명령에서는 쓰이지 않음 (무시됨).

23 Instruction Processing Summary
Instructions look just like data -- it’s all interpretation. 세 가지 기본 명령어 집합: Computational Instructions (ADD, AND, …) Data movement Instructions (LDR, LD, STR, ST (Store), …) Control Instructions (JMP, BRnz, …) 명령 수행의 6가지 기본 단계 F  D  EA  OP  EX  S 모든 명령이 6가지 단계를 다 필요로 하는 것은 아님. 각 단계는 서로 다른 machine cycles로 구성될 수 있음.

24 Control Unit State Diagram
The control unit is a state machine. 아래 그림은 LC-3의 간략화한 state diagram 일부임 LC-3의 보다 완결된 State Diagram은 Appendix C에서 확인할 수 있으며 이해를 위해서는 Chapter 5 학습이 필요

25


Download ppt "Chapter 4 The Von Neumann Model."

Similar presentations


Ads by Google