1 / 22

컴퓨터 구조 발표

컴퓨터 구조 발표. 2007081048 조원기 2009081003 김정호. CPU (Central Processing Unit). CPU 구성요소. CPU 의 기능 - 명령어 인출 (Instruction Fetch ) 기억장치로 부터 명령어를 읽어온다 . - 명령어 해독 (Instruction Decode ) 읽어온 명령어를 해독한다 . - 데이터 인출 (Data Fetch) 명령어 실행시 데이터가 필요한 경우 기억장치 / 입출력 장치로부터 데이터를 읽어온다 .

luke
Download Presentation

컴퓨터 구조 발표

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 컴퓨터 구조 발표 2007081048 조원기 2009081003 김정호

  2. CPU (Central Processing Unit) CPU 구성요소 CPU의 기능 -명령어 인출(Instruction Fetch) 기억장치로 부터 명령어를 읽어온다. -명령어 해독(Instruction Decode) 읽어온 명령어를 해독한다. -데이터 인출(Data Fetch) 명령어 실행시 데이터가 필요한 경우 기억장치/입출력 장치로부터 데이터를 읽어온다. -데이터 처리(Data Process) 읽어온 데이터에 대한 산술, 논리적 연산을 수행 -데이터 쓰기(Data Store) 수행 한 결과값을 저장한다.

  3. CPU 구성요소 종류 1. 산술 논리 연산 장치(ALU : Arithmetic Logic Unit) 1-1 상태 플래그 : ALU 내의 상태 표시 1-2 이동기 : 데이터의 좌, 우 이동 1-3 보수기 : 보수 연산 1-4 산술 및 부울로직: 산술 연산과 논리 연산 2. 제어 장치(CU : Control Unit) 연산을 순서대로 실행하기 위해 기억, 연산, 입출력 장치에 제어신호를 발생시켜 제어 3. 레지스터 세트 CPU내부 레지스터의 집합으로 기억기능을 수행하며 기억 장치 중 엑세스속도가 가장 빠르다. 4. 내부 버스 CPU 내부에서 ALU와 레지스터간의 데이터 이동을 위한 통로 5. 프로그램 카운터(PC : Program Counter) 6. 누산기(AC : Accumulator) 7. 명령어 레지스터 (IR : Instruction Register) 8. 기억장치 주소 레지스터 (MAR : Memory Address Register) 9. 기억장치 버퍼 레지스터 (MBR : Memory Buffer Register)

  4. 명령이 실행 과정명령어 사이클(Instruction Cycle) 인출 사이클(Fetch Cycle) CPU가 기억장치로부터 명령어를 읽어오는 단계 • 실행 사이클(Execution Cycle) • CPU는 명령어 코드를 해독하고 그 결과에 따라 연산을 수행한다. • CPU가 수행하는 연산의 종류 • -데이터 이동 : CPU와 기억장치, 입출력 장치간 데이터를 이동 • -데이터 처리 : 데이터에 대한 산술, 논리 연산 수행 • -데이터 저장 : 연산에 필요한 데이터 및 연산 결과를 기억 장치에 저장 • -제어 : 프로그램, 명령어의 실행 순서 결정 • * 실행 사이클에서 수행되는 마이크로 연산은 명령어에 따라 다르다.

  5. 명령어 집합 • 기계어를 사람이 이해하기 쉽게 표현한 것을 명령어라 하며 이 명령어의 집합을 명령어 집합이라 한다. • - 모든 컴퓨터는 자신의 명령어 집합을 가지고 있다. • * 명령어 집합 설계를 위해 결정해야할사항 • 연산 종류 : CPU가 수행할 연산의 수와 종류 및 복잡도 • 데이터 형태 : 연산을 수행할 데이터의 형태, 길이등 • 명령어 형식 : 명령어의 길이, 오퍼랜드 필드의 수와 길이 등 • - 주소 지정 방식 : 오퍼랜드의 주소를 지정하는 방식

  6. 명령어 형식 • 각 명령어는 일련의 비트로 구성된 코드로 표현하며, 그 명령어는 그 구성 요소에 따라 몇 부분으로 구성 할 수 있다. - 컴퓨터의 내부 구조에 따라 여러 가지 형식이 있다. - 명령어 형식 -

  7. 명령어의 구성요소 • 동작 코드(OP Code :Operation Code) : 실행할 명령어를 나타내는 부분, 동작 코드가 n비트이면 실행 가능한 연산의 개수는 2ⁿ개 이다. • 1.1 동작 코드의 종류 • 데이터 전송(Data Transfer)코드 • 산술(Arithmetic)코드 • 논리(Logic) 코드 • 제어 전송 코드 • 입출력 코드 등

  8. 오퍼랜드(Operand) • 연산을 수행하는데 필요한 데이터 혹은 데이터의 주소, 한 개 또는 두 개의 입력 오퍼랜드와 한 개의 결과 오퍼랜드를 가질 수 있다. 또한 데이터가 저장되어있는 장소를 지정하는 방법을 주소 지정 모드라 한다. • *오퍼랜드의 범위는 오퍼랜드의 종류에 따라 결정 • 데이터 : 표현 가능한 수의 크기 • 기억장치 주소 : 주소를 지정할 수 있는 기억장치 영역의 범위 결정 • - 레지스터 번호 : 사용할 수 있는 레지스터의 수가 결정

  9. 오퍼랜드 수에 따른명령어 형식 분류(1) 1) 0-주소 명령어 형식 -스택 구조에서 사용하는 형식 -수식을 postfix 형태로 바꾸어 사용한다. -주소 필드를 사용하지 않는다. 예) F = (A+B) * C을 0-주소 명령어 형식으로 프로그램 하라. postfix formula F = 3 4 + 5 6 + * 프로그램 : PUSH A -> PUSH B -> ADD -> PUSH C -> MUL -> POP F • 2) 1-주소 명령어 형식 • 오퍼랜드의 수가 1개인 형식 • - 기억장치로부터 오퍼랜드를 가져오거나 연산 결과를 저장하는 장소로 누산기(Accumulator )를 사용. • 예) F = (A + B) * C를 1-주소 명령어 형식으로 프로그램 하라. • LD A - AC <- A • ADD B - AC <- AC + B • MUL C - AC <- AC * C • ST F - F <- AC 1-주소 명령어 형식

  10. 오퍼랜드 수에 따른명령어 형식 분류(2) • 4) 3-주소 명령어 형식 • 오퍼랜드의 수가 3개인 형식 • 결과 값을 저장할 오퍼랜드를 따로 지정해 줄 수 있어 다른 오퍼랜드의 내용이 보존된다. • 효율과 편의를 위해 다른 명령어 형식들의 이용이 필요하다. • 예) F = (A + B) * C를 3-주소 명령어 형식으로 프로그램 하라. • ADD T1, A, B - T1 <- A+B • MUL F, Z, C - F <- T1*C • 3) 2-주소 명령어 형식 • 오퍼랜드의 수가 2개인 형식 • 결과 값을 두 오퍼랜드 중 하나에 기억시키는데 이 때문에 결과 값을 저장하는 오퍼랜드의 내용이 변질 된다. • 예) F = (A + B) * C를 2-주소 명령어 형식으로 프로그램 하라. • ADD A, B - A <- A+B • MUL C, A - C <- A*C • MOV F, C - F <- C 3-주소 명령어 형식 2-주소 명령어 형식

  11. 명령어의 종류(1)

  12. 명령어의 종류(2) *Mnemonic은 기계어나 기계의 동작을 사람이 알아보기 쉬운 형태로 표현한 것을 말합니다.

  13. 명령어 주소 지정 방식(1) • 프로그램 수행 시 오퍼랜드를 지정하는 방식 • - 명령어의 주고 필드를 변경하거나 해석하는 규칙을 지정하는 형식 • 즉시 주소지정 방식 • 명령어 자체 내에 오퍼랜드를 지정하고 있는 방식 • 오퍼랜드 필드 내용이 실제 사용 데이터 • 레지스터나 변수의 초기화에 유용 • 예) ADD R1,100 : R1 <- R1 + 100

  14. 명령어 주소 지정 방식 (2) • 2) 직접 주소지정 방식 • 명령어의 주소필드에 직접 오퍼랜드의 기억장치 주소를 저장시키는 방식 • 예) ADD ADRS(n) : AC <- AC + M[ADRS(n)] • 3) 간접 주소지정 방식 • 명령어의 주소필드에 오퍼랜드의 주소를 갖고 있는 기억장치의 주소를 저장시키는 방식 • 예) ADD ADRS(n) : AC <- AC + M[ADRS(m)]

  15. 명령어 주소 지정 방식 (3) • 5) 레지스터 간접 주소지정 방식 • 레지스터가 오퍼랜드의 주소를 갖고 있는 기억장치의 주소를 갖고 있는 방식 • 예) ADD (R1) : AC <- AC + M[R1] • 4) 레지스터 주소지정 방식 • 주소 필드에 오퍼랜드 내용을 갖고 있는 레지스터의 주소를 저장시키는 방식 • 예) ADD R1 : AC <- AC + R1

  16. 명령어 주소 지정 방식 (4) • 7) 베이스 레지스터 주소지정 방식 • 베이스 레지스터라는 레지스터를 이용하여 그 값을 기준으로 변위를 설정하여 주소를 얻는 방식이다. • 예) ADD (BR) : AC <- AC + M[m +(BR)] • 6) 상대 주소 방식 • 유효주소를 계산하기 위해 처리 장치내의 특정 레지스터 내용에 주소필드 값을 더하는 방식 • 특정 레지스터는 주로 PC(Program Counter)를 사용 • 예) ADD x : AC <- AC + M[x + PC]

  17. 명령어 주소 지정 방식 (5) • 9) 데이터 주소의 표현 방식 • 데이터 주소의 표현 방식에는 완전 주소, 약식 주소, 생략 주소, 데이터 자신으로 구분할 수 있다. • 완전 주소는 정보가 데이터나 주소를 구별하지 않고 기억된 장소에 직접 매핑 시킬 수 있는 완전한 주소를 뜻한다. • 2. 약식 주소는 주소의 일부분을 생략한 것을 말하며 계산에 의한 주소는 약식 주소에 속한다. • 3. 생략 주소는 주소를 구체적으로 나타내지 않아도 정보가 기억된 곳을 알 수 있을 경 • 8) 인덱스 레지스터 주소지정 방식 • 인덱스 레지스터의 내용을 명령어 주소 부분에 더해 유효주소를 얻는 방식 • 배열 또는 데이터를 표나 사전처럼 구성한 구조인 프로그램 처리시 유용하다. • 예) ADD (Ix + d) : AC <- AC + (n + d) ← 데이터 주소의 표현방식

  18. 명령어 주소 지정 방식 (6) • 10-1) 스택의단항, 이항 연산 • 단항연산은 하나의 데이터만 필요함으로 TOP이 지정하는 곳에서 데이터를 얻어 처리한 후 결과는 얻은 곳에 다시 보관 한다. • - 이항 연산은 두 개의 데이터가 필요하다. 이 데이터는 스택의 상단부에 위치한 두 자리에서 얻는다. 결과는 탑이 지정하는 장소 하단에 저장된다. • 10) 스택 주소지정 방식 • 주소를 명시할 필요 없이 기억장치에 기억할 수 있는 방식 • - 0-주소 또는 내포(implied) 명령어라고 한다.

  19. 레지스터 • 범용레지스터 • 1) 누산기(Accumulator) • 전용레지스터 • 1)명령어 레지스터 • 2)메모리 지정 레지스터 • 메모리 주소 레지스터(MAR : Memory Address Register) • 인덱스 레지스터(index register) • 세그먼트 레지스터(Segment Register) • 메모리 버퍼 레지스터(MBR : Memory Buffer Register) • SI(Source Index), DI(Destination Index) 레지스터 • 프로그램 카운터(PC : Program Counter) • 3) 스택 레지스터 • 4) 상태 레지스터

  20. 범용 레지스터 • 작업 레지스터(Working Register) 또는 스크래치 패드 레지스터(Scratch Pad Register)라고도 한다. • CPU가 작업을 위해 다목적으로 사용하는 고속 레지스터로 대부분 ALU와 연결하여 사용한다. 누산기(Accumulator) - 증가(Increment), 감소(Decrement), 이동(Shift), 데이터 변환 등의 기능이 집약되어 있다. -연산의 편의성을 위해 자주 사용되며, 간단한 연산의 경우 누산기에서 처리할 경우 ALU보다 빠르고 높은 효율로 처리가 가능하다.

  21. 전용 레지스터(1) • 특수 레지스터(SPR : Special Purpose Register)라고도 한다. • 범용 레지스터에 비해 특별한 용도에 사용하는데 대부분 필요한 용도로서 장착하고 있어야 한다. 명령어 레지스터(IR : Instruction Register) - 명령어를 수행하기 위해 잠시 명령어 정보를 저장하는 레지스터 • 2) 메모리 지정 레지스터 • 메모리 주소 레지스터(MAR : Memory Address Register) : CPU가 참조해야할 기억장치의 주소를 나타내는 레지스터 • 인덱스 레지스터(Index Register) : 레지스터 내의 내용을 입력 받은 피연산자값을 더하여 주소 지정 모드를 만들어 기억장치의 주소를 참조할 수 있도록 하는 레지스터 • 세그먼트 레지스터(Segment Register) : CPU가 읽어야할 코드나 데이터가 있는 세그먼트의 기억장치 내의 주소를 가르키는 레지스터 • 메모리 버퍼 레지스터(MBR : Memory Buffer Register) : MAR이 지정하는 기억장치 주소에 있는 데이터를 임시로 적재하거나 결과값을 기억장치에 적재할 데이터를 임시로 저장하는 레지스터 • SI(Source Index), DI(Destination Index) : 메모리간에 대량의 데이터 전송 시 시작지와 목적지의 위치를 가르키는 레지스터 • 프로그램 카운터(PC : Program Counter) : IP(Instruction Pointer)라고도 불리우며 프로그램에서 다음에 가져올 명령어의 주소를 가르키는 레지스터

  22. 전용 레지스터(2) 3) 스택 레지스터(STACK Register) - 문맥 교환(Context)이 일어날 경우 이전 작업의 내용과 상태를 보존하기 위한 유지 영역의 기능 - 관리를 위해 스택 포인터(SP : STACK Pointer)와 베이스 포인터(BP : Base Pointer)가 사용된다. 4) 상태 레지스터(Status Register) - 플래그 레지스터(Flag Register)라고도 불리우며 CPU의 다음 동작에 필요한 연산의 상태를 저장하고 있다. - 구성으로는 부호 플래그(Sign Flag), 0 플래그(Zero Flag), 오버플로우 플래그(Over Flow Flag), 캐리 플래그(Carry Flag) 등이 있다.

More Related