Chapter 4 The Von Neumann Model.

Slides:



Advertisements
Similar presentations
1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
Advertisements

1 8 장 대형 순차회로 문제의 해법 1) 시프트 레지스터 2) 카운터 3)ASM 도를 이용한 설계 4)One Hot encoding 5) 복잡한 예제.
1/37 Chapter 4: 프로세서 성능과 휴대성을 위한 하드웨어 © The McGraw-Hill Companies, Inc., 세기의 가장 중요한 발명품 : 마이크로 프로세서 일상생활에 널리 사용됨 프로그램에 의한 적응성.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Understanding of Ubiquitous & Computers Plus
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
AMBA BUS Protocol의 이해 (AMBA 2.0 Specification)
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
기본 컴퓨터의 구조와 설계 Lecture #5.
마이크로프로세서(Microprocessor,µP)
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
과목 홈페이지  전산학개론 이메일 숙제를 제출할 경우, 메일 제목은 반드시 ‘[전산학개론]’으로 시작.
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
10장 주변장치 (PIO) Slide 1 (of 28).
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
7장 : 캐시와 메모리.
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
컴퓨터 구조학 정보보호학과.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
제4장 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
A system is a set of related components that work together in a particular environment to perform whatever functions are required to achieve the system’s.
컴퓨터 구조.
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
Chapter 7. Pentium Processor
Chapter 08 제어장치와 마이크로 오퍼레이션.
4장 컴퓨터의 중앙 처리 장치 하 효 순.
Computer Architecture

6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
ARM 명령어 집합 Lecture #7.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
Computer System Architecture
CHAPTER 03. 컴퓨터 구조 컴퓨터 시스템의 구성과 동작 원리_컴퓨터 시스템에 대한 근본적 이해
Chapter 1 Welcome Aboard.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
파이프라이닝.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
1 컴퓨터 구조 IT CookBook, 컴퓨터 구조와 원리 2.0.
A Web-Based Little Man Computer Simulator
운영체제 (Operating Systems) (Memory Management Strategies)
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
모클리와 에커트 vs. 폰 노이만 - 에니악에 얽힌 이야기
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
임베디드 하드웨어 Lecture #6.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture 7 7-Segment LED controller using u-controller
4-1. 명령어 형식.
제 1 강 컴퓨터의 구조.
Presentation transcript:

Chapter 4 The Von Neumann Model

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 http://en.wikipedia.org/wiki/History_of_computing_hardware

Von Neumann Model

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의 지수는 얼마인가?” 컴퓨터와 폰 노이만이 동시에 문제를 풀기 시작했고 폰 노이만이 먼저 풀어 승리하였다.

Memory 2 𝑘 ×𝑚 array of stored bits Address Contents Basic Operations: LOAD 해당 메모리 주소에 저장되어 있는 값을 읽는 연산 STORE 해당 메모리 주소에 값을 쓰는 연산 0000 0001 0010 0011 0100 0101 0110 1101 1110 1111 • 00101101 10100010

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 • 00101101 10100010

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

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

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

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

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

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 to the contents of R6, and store the result in R6.”

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

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

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

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

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

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

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

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 값을 바꿈.

Example: LC-3 JMP Instruction 레지스터에 저장된 값으로 PC 값을 변경 변경된 PC는 다음에 Fetch하여야 할 명령의 주소를 가짐. “Load the contents of R3 into the PC.”

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

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