컴퓨터구조(1반 조원

Download Report

Transcript 컴퓨터구조(1반 조원

컴퓨터 구조 발표

2007081048 조원기 2009081003 김정호

CPU (Central Processing Unit)

CPU 구성요소 CPU의 기능 -명령어 인출(Instruction Fetch) 기억장치로 부터 명령어를 읽어온다.

-명령어 해독(Instruction Decode) 읽어온 명령어를 해독한다.

-데이터 인출(Data Fetch) 명령어 실행시 데이터가 필요한 경우 기억장 치/입출력 장치로부터 데이터를 읽어온다.

-데이터 처리(Data Process) 읽어온 데이터에 대한 산술, 논리적 연산을 수행 -데이터 쓰기(Data Store) 수행 한 결과값을 저장한다 .

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)

명령이 실행 과정 명령어 사이클(Instruction Cycle)

인출 사이클(Fetch Cycle) CPU가 기억장치로부터 명령어를 읽어오는 단계 실행 사이클(Execution Cycle) CPU는 명령어 코드를 해독하고 그 결과에 따라 연산을 수행한다.

-CPU가 수행하는 연산의 종류 -데이터 이동 : CPU와 기억장치, 입출력 장치간 데이터를 이동 -데이터 처리 : 데이터에 대한 산술, 논리 연산 수행 -데이터 저장 : 연산에 필요한 데이터 및 연산 결과를 기억 장치에 저장 -제어 : 프로그램, 명령어의 실행 순서 결정 * 실행 사이클에서 수행되는 마이크로 연산은 명령어에 따라 다르다.

명령어 집합

-기계어를 사람이 이해하기 쉽게 표현한 것을 명령어라 하며 이 명령어의 집합 을 명령어 집합이라 한다.

- 모든 컴퓨터는 자신의 명령어 집합을 가지고 있다.

* 명령어 집합 설계를 위해 결정해야할 사항

-연산 종류 : CPU가 수행할 연산의 수와 종류 및 복잡도 -데이터 형태 : 연산을 수행할 데이터의 형태, 길이 등 -명령어 형식 : 명령어의 길이, 오퍼랜드 필드의 수와 길이 등 - 주소 지정 방식 : 오퍼랜드의 주소를 지정하는 방식

명령어 형식

-각 명령어는 일련의 비트로 구성된 코드로 표현하며, 그 명령어는 그 구성 요소에 따라 몇 부분으로 구성 할 수 있다.

- 컴퓨터의 내부 구조에 따라 여러 가지 형식이 있다.

동작 코드 오퍼랜드 1 - 명령어 형식 오퍼랜드 2

명령어의 구성요소 1. 동작 코드(OP Code :Operation Code) : 실행할 명령어를 나 타내는 부분, 동작 코드가 n비트이면 실행 가능한 연산의 개 수는 2ⁿ개 이다.

1.1 동작 코드의 종류 -데이터 전송(Data Transfer)코드 -산술(Arithmetic)코드 -논리(Logic) 코드 -제어 전송 코드 -입출력 코드 등

오퍼랜드(Operand)

-연산을 수행하는데 필요한 데이터 혹은 데이터의 주소, 한 개 또는 두 개 의 입력 오퍼랜드와 한 개의 결과 오퍼랜드를 가질 수 있다. 또한 데이터 가 저장되어있는 장소를 지정하는 방법을 주소 지정 모드라 한다.

*오퍼랜드의 범위는 오퍼랜드의 종류에 따라 결정

- 데이터 : 표현 가능한 수의 크기 - 기억장치 주소 : 주소를 지정할 수 있는 기억장치 영역의 범위 결정 - 레지스터 번호 : 사용할 수 있는 레지스터의 수가 결정

오퍼랜드 수에 따른 명령어 형식 분류(1)

1) 0-주소 명령어 형식 -스택 구조에서 사용하는 형식 2) 1-주소 명령어 형식 -오퍼랜드의 수가 1개인 형식 -수식을 postfix 형태로 바꾸어 사용한 다.

- 기억장치로부터 오퍼랜드를 가져오거나 연 산 결과를 저장하는 장소로 누산기 (Accumulator )를 사용.

-주소 필드를 사용하지 않는다.

예) F = (A+B) * C을 0-주소 명령어 형 식으로 프로그램 하라.

postfix formula F = 3 4 + 5 6 + * 예) F = (A + B) * C를 1-주소 명령어 형식으 로 프로그램 하라.

LD A - AC <- A ADD B - AC <- AC + B MUL C - AC <- AC * C ST F - F <- AC 프로그램 : PUSH A -> PUSH B -> ADD -> PUSH C -> MUL -> POP F 동작 코드 오퍼랜드 1-주소 명령어 형식 (#1)

오퍼랜드 수에 따른 명령어 형식 분류(2)

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 동작 오퍼랜 오퍼랜 코드 드 (#1) 드 (#2) 2-주소 명령어 형식 4) 3-주소 명령어 형식 - 오퍼랜드의 수가 3개인 형식 - 결과 값을 저장할 오퍼랜드를 따 로 지정해 줄 수 있어 다른 오퍼랜 드의 내용이 보존된다.

- 효율과 편의를 위해 다른 명령어 형식들의 이용이 필요하다.

예) F = (A + B) * C를 3-주소 명령 어 형식으로 프로그램 하라.

ADD T1, A, B - T1 <- A+B MUL F, Z, C - F <- T1*C 동작 오퍼랜 오퍼랜 오퍼랜 코드 드 (#1) 드 (#2) 드 (#3) 3-주소 명령어 형식

명령어의 종류(1)

명령어의 종류(2)

*Mnemonic은 기계어나 기계의 동작을 사람이 알아보기 쉬운 형태로 표현한 것을 말합니다.

명령어 주소 지정 방식(1)

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

명령어 주소 지정 방식 (2)

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

명령어 주소 지정 방식 (3)

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

명령어 주소 지정 방식 (4)

7) 베이스 레지스터 주소지정 방식 6) 상대 주소 방식 -유효주소를 계산하기 위해 처리 장치 내의 특정 레지스터 내용에 주소필드 값을 더하는 방식 -베이스 레지스터라는 레지스터를 이용하여 그 값을 기준으로 변위를 설정하여 주소를 얻 는 방식이다.

-특정 레지스터는 주로 PC(Program Counter)를 사용 예) ADD (BR) : AC <- AC + M[m +(BR)] 예) ADD x : AC <- AC + M[x + PC]

명령어 주소 지정 방식 (5)

8) 인덱스 레지스터 주소지정 방식 -인덱스 레지스터의 내용을 명령어 주 소 부분에 더해 유효주소를 얻는 방식 9) 데이터 주소의 표현 방식 -데이터 주소의 표현 방식에는 완전 주소, 약식 주소, 생략 주소, 데이터 자신으로 구 분할 수 있다.

-배열 또는 데이터를 표나 사전처럼 구 성한 구조인 프로그램 처리시 유용하다.

1. 완전 주소는 정보가 데이터나 주소를 구별하지 않고 기억된 장소에 직접 매 핑 시킬 수 있는 완전한 주소를 뜻한다.

예) ADD (Ix + d) : AC <- AC + (n + d) 2. 약식 주소는 주소의 일부분을 생략한 것 을 말하며 계산에 의한 주소는 약식 주소에 속한다.

3. 생략 주소는 주소를 구체적으로 나타내 지 않아도 정보가 기억된 곳을 알 수 있을 경 ← 데이터 주소의 표현방식

명령어 주소 지정 방식 (6)

10) 스택 주소지정 방식 -주소를 명시할 필요 없이 기억장치 에 기억할 수 있는 방식 - 0-주소 또는 내포(implied) 명령어 라고 한다.

10-1) 스택의 단항, 이항 연산 -단항 연산은 하나의 데이터만 필요함 으로 TOP이 지정하는 곳에서 데이터를 얻어 처리한 후 결과는 얻은 곳에 다시 보관 한다.

- 이항 연산은 두 개의 데이터가 필요 하다. 이 데이터는 스택의 상단부에 위 치한 두 자리에서 얻는다. 결과는 탑이 지정하는 장소 하단에 저장된다.

레지스터

-

범용레지스터

1) 누산기(Accumulator) -

전용레지스터

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

범용 레지스터

- 작업 레지스터(Working Register) 또는 스크래치 패드 레지스터(Scratch Pad Register)라고도 한다.

- CPU가 작업을 위해 다목적으로 사용하는 고속 레지스터로 대부분 ALU와 연결하여 사용한다.

1) 누산기(Accumulator)

-

증가(Increment), 감소(Decrement), 이동(Shift), 데이터 변환 등의 기능이 집약되어 있다.

-

연산의 편의성을 위해 자주 사용되며, 간단한 연산의 경우 누산기에서 처리할 경우 ALU보다 빠르고 높은 효율로 처리가 가능하다.

전용 레지스터(1)

- 특수 레지스터(SPR : Special Purpose Register)라고도 한다.

- 범용 레지스터에 비해 특별한 용도에 사용하는데 대부분 필요한 용도로서 장착하고 있어야 한다.

1) 명령어 레지스터(IR : Instruction Register) - 명령어를 수행하기 위해 잠시 명령어 정보를 저장하는 레지스터 2) 메모리 지정 레지스터

① 메모리 주소 레지스터(MAR : Memory Address Register)

: CPU가 참조해야할 기억장 치의 주소를 나타내는 레지스터

② 인덱스 레지스터(Index Register)

: 레지스터 내의 내용을 입력 받은 피연산자값을 더 하여 주소 지정 모드를 만들어 기억장치의 주소를 참조할 수 있도록 하는 레지스터

③ 세그먼트 레지스터(Segment Register)

로 저장하는 레지스터 : CPU가 읽어야할 코드나 데이터가 있는 세그 먼트의 기억장치 내의 주소를 가르키는 레지스터

④ 메모리 버퍼 레지스터(MBR : Memory Buffer Register) ⑤ SI(Source Index), DI(Destination Index)

: MAR이 지정하는 기억장치 주소에 있는 데이터를 임시로 적재하거나 결과값을 기억장치에 적재할 데이터를 임시 : 메모리간에 대량의 데이터 전송 시 시작지 와 목적지의 위치를 가르키는 레지스터

⑥ 프로그램 카운터(PC : Program Counter)

: IP(Instruction Pointer)라고도 불리우며 프 로그램에서 다음에 가져올 명령어의 주소를 가르키는 레지스터

전용 레지스터(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) 등이 있다.