View
223
Download
1
Category
Preview:
DESCRIPTION
8086 프로세서의 구조 및 동작 방식. 시스템 프로그래밍 - Lecture #2. 컴퓨터 구조 (1). 컴퓨터 시스템의 기본 구성 프로세서 (Processor) – CPU 기억장치 (Memory) RAM(Random Access Memory) ROM(Read Only Memory) 입출력장치 (I/O Devices) Keyboard, Mouse, Monitor, Printer 등 Hard Disk, CD-ROM 등 Network Interface Card 시스템 버스 (System Bus) - PowerPoint PPT Presentation
Citation preview
신라대학교 컴퓨터공학과 시스템 프로그래밍
8086 8086 프로세서의 구조 및 프로세서의 구조 및 동작 방식동작 방식
시스템 프로그래밍 - Lecture #2
신라대학교 컴퓨터공학과 시스템 프로그래밍2
컴퓨터 구조컴퓨터 구조 (1)(1)
컴퓨터 시스템의 기본 구성 프로세서 (Processor) – CPU 기억장치 (Memory)
RAM(Random Access Memory) ROM(Read Only Memory)
입출력장치 (I/O Devices) Keyboard, Mouse, Monitor, Printer 등 Hard Disk, CD-ROM 등 Network Interface Card
시스템 버스 (System Bus) Data Bus Address Buss Control Bud
신라대학교 컴퓨터공학과 시스템 프로그래밍3
컴퓨터 구조컴퓨터 구조 (2)(2)
기본 구성
CPUAddress Bus
MemoryController
Main Memory
I/O Controller I/O Controller
Hard Disk
Printer
Data BusControl Bus
신라대학교 컴퓨터공학과 시스템 프로그래밍4
프로세서프로세서 (Processor) (1)(Processor) (1)
Intel x86 Microprocessors( 표 3.1 참조 )
8086
8088
80186
80286
80386
80486
Pentium-I
Pentium-II
Pentium-III 등
신라대학교 컴퓨터공학과 시스템 프로그래밍5
프로세서프로세서 (Processor) (2)(Processor) (2)
8086 프로세서의 구조 명령어 실행 장치 (EU: Execution Unit)
산술논리 연산장치 (ALU: Arithmetic Logic Unit)
EU 제어 시스템 (EU Control System)
범용 레지스터 (General Purpose Registers)
플래그 레지스터 (Flag Register)
버스 인터페이스 장치 (Bus Interface Unit) 명령어 포인터 (Instruction Pointer)
세그먼트 레지스터 (Segment Register)
주소 계산기 (Address Adder)
명령어 큐 (Instruction Queue)
신라대학교 컴퓨터공학과 시스템 프로그래밍
프로세서프로세서 (Processor) (3) –(Processor) (3) –8086 Processor 8086 Processor 구조구조
신라대학교 컴퓨터공학과 시스템 프로그래밍7
프로세서프로세서 (Processor) (4)(Processor) (4)
8086 프로세서 칩 구성
데이터 /어드레스버스
논리마스커블논리마스커블인터럽트인터럽트
어드레스어드레스 //세그먼트 정보세그먼트 정보
신라대학교 컴퓨터공학과 시스템 프로그래밍
프로세서프로세서 (Processor) (4) –(Processor) (4) –80868086 을 이용한 시스템구성을 이용한 시스템구성
신라대학교 컴퓨터공학과 시스템 프로그래밍9
프로세서의 메모리 판독 사이클프로세서의 메모리 판독 사이클 (1)(1)
기억장치
주소버스
데이터버스
제어버스
시스템버스
RAM ROM 1 단계 : 판독요구신호
12
프로세서
2 단계 : 주소전송
신라대학교 컴퓨터공학과 시스템 프로그래밍10
프로세서의 메모리 판독 사이클프로세서의 메모리 판독 사이클 (2)(2)
기억장치
주소버스
데이터버스
제어버스
시스템버스
RAM ROM 3 단계 : 데이터 전송
43
프로세서
4 단계 : 판독완료신호
신라대학교 컴퓨터공학과 시스템 프로그래밍11
프로세서의 메모리 기록 사이클프로세서의 메모리 기록 사이클 (1)(1)
기억장치
주소버스
데이터버스
제어버스
시스템버스
RAM ROM 1 단계 : 기록요구신호
12
프로세서
2 단계 : 주소전송
신라대학교 컴퓨터공학과 시스템 프로그래밍12
프로세서의 메모리 기록 사이클프로세서의 메모리 기록 사이클 (2)(2)
기억장치
주소버스
데이터버스
제어버스
시스템버스
RAM ROM 3 단계 : 데이터 전송
4 3
프로세서
4 단계 : 기록완료신호
신라대학교 컴퓨터공학과 시스템 프로그래밍13
8086 8086 프로세서의 입출력 동작프로세서의 입출력 동작
8086 프로세서의 입출력 동작 (I/O Operation) I/O 주소를 이용하여 I/O 장치를 구별 메모리 접근과 동일하게 주소 버스 및 데이터 버스를 사용 메모리 접근과 구별하기 위해 별도의 신호 (M/IO) 를 이용
High – Memory Access
Low – I/O Access
기본적으로 메모리 판독 / 기록 사이클과 동일하게 동작
신라대학교 컴퓨터공학과 시스템 프로그래밍14
프로세서의 명령어 실행 사이클프로세서의 명령어 실행 사이클 (1)(1)
명 령 어 인 출
IP IP 주소→주소버스주소→주소버스명령어→명령어큐명령어→명령어큐
IP+2→IPIP+2→IP
명 령 어 해독
명령어→명령어→ EUEU필요한 동작 판단필요한 동작 판단
데 이 터 인 출
연산항 주소에연산항 주소에대한 데이터 인출대한 데이터 인출
→→ 레지스터레지스터
명령어 실행
명령어 실행명령어 실행실행 결과→실행 결과→
레지스터 혹은 주기억레지스터 혹은 주기억
신라대학교 컴퓨터공학과 시스템 프로그래밍15
프로세서의 명령어 실행 사이클프로세서의 명령어 실행 사이클 (2)(2)
IP(Instruction Pointer) 레지스터에 의해 프로그램 실행 순서를 제어 명령어 인출 단계에서 현재 명령어의 길이를 더하여 다음
명령어의 주소를 저장 분기 (branch) 명령어 처리 : e.g) goto 1000
명령어 큐를 사용하여 크기가 일정하지 않은 명령어를 처리 8086 프로세서의 명령어 길이는 1~6 바이트 한 워드 (2 바이트 ) 보다 긴 명령어는 현재 인출된 명령어의
정보를 이용하여 명령어 인출을 반복
신라대학교 컴퓨터공학과 시스템 프로그래밍16
프로세서의 명령어 실행 사이클프로세서의 명령어 실행 사이클 (3)(3)
플래그 레지스터에 명령어 실행 결과에 대한 정보를 저장 계산 결과의 부호 , zero, 올림수 등
8086 프로세서의 명령어 실행 예 그림 2.8 참조
신라대학교 컴퓨터공학과 시스템 프로그래밍17
명령어 실행속도명령어 실행속도 (1)(1)
명령어 사이클 (Instruction Cycle) 한 명령어를 인출하여 실행하는 시간 명령어 인출 , 명령어 해독 , 데이타 호출 , 실행 시간을 모두
합친 시간 fetch time(I-time) : 명령어 호출 시간 execution time(E-time) : 명령어 해석하여 데이터 인출하고
연산 수행하는 시간 instruction cycle = I-time + E-time 명령어의 길이가 각기 다르기 때문에 명령어 사이클이
일정하지 않으며 , 보통 4~200 system clock 을 요구
신라대학교 컴퓨터공학과 시스템 프로그래밍18
명령어 실행속도명령어 실행속도 (2)(2)
MIPS(Million Instruction Per Second) 프로세서의 명령어 실행 속도를 나타내는 단위 단위 시간 (1 초 ) 에 실행하는 명령어의 수를 백만 단위로
표현 시스템 클럭 , 레지스터 크기 , 데이터 버스 크기 , 연산장치
크기 , 명령어 크기 등에 의해 결정 Mainframe Computer : 20 ~ 1000MIPS
Microcomputer : 1 ~ 10 MIPS 8086 프로세서 : 1 ~ 10 MIPS
신라대학교 컴퓨터공학과 시스템 프로그래밍19
8086 8086 프로세서 명령어프로세서 명령어 프로세서의 명령어 길이
명령어의 종류 , 주소지정방식 , 레지스터의 개수 등에 의해 결정 8-bit 명령어의 예 : 그림 3.2 참조
8086 프로세서의 명령어 기본적으로 1 단어 (2 바이트 ) 로 구성 2 단어 또는 최대 3 단어 (6 바이트 ) 까지 확장 가능 부록 D 참조 :
연산항 주소 모드 5 bits 범용 레지스터 8 개 레지스터 주소 3 bits 연산 데이터의 크기 지정 (8/16 bit) word bit 레지스터 접근 방향 (from/to) direction bit 연산자 종류 6 bits
신라대학교 컴퓨터공학과 시스템 프로그래밍20
기억장치기억장치 (1)(1)
명령 및 데이터의 저장장소 기본소자 : 비트 (bit)
기본 주소지정 단위 : 바이트 (byte)
기본 정보 단위 : 워드 (word)
주소 (address), 위치 (location), 내용값 (contents)
주소공간 (Address Space) 프로그램이 지정할 수 있는 단위 정보의 수 주소를 나타내기 위한 주소 비트의 수에 의해 결정 예 : 주소 버스가 16 비트이면 216 = 64 KB
신라대학교 컴퓨터공학과 시스템 프로그래밍21
기억장치기억장치 (2)(2)
64KB 의 기억장치 주소 예
기억장치기억장치기억장치기억장치
기억된기억된내용내용
주기억장치주기억장치주 소주 소
11 00 11 11 0000 1111
바이트 바이트 00바이트 바이트 00
......
......
바이트 바이트 NN바이트 바이트 NN
바이트바이트 6553565535바이트바이트 6553565535
......
......
NNNN
0000
1111
65535655356553565535
......
......
......
......
신라대학교 컴퓨터공학과 시스템 프로그래밍22
기억장치기억장치 (3)(3)
기억장치의 물리적 관리 방법 선형 기억장치 관리
주소를 선형으로 배열 논리주소 = 물리주소
세그먼트 기억장치 관리 기억장소를 세그먼트로 구분 논리주소≠물리주소
페이징 , 페이징 / 세그먼트 혼합방법
신라대학교 컴퓨터공학과 시스템 프로그래밍23
기억장치기억장치 (4)(4)
선형 기억장치 관리 (1)
논리적인 주소논리적인 주소
NNNN
20 20 비트비트
기억장치기억장치001122......NN......
cf) 모토롤라 M68000 프로세서 등에서 적용
신라대학교 컴퓨터공학과 시스템 프로그래밍24
기억장치기억장치 (5)(5) 선형 기억장치 관리 (2)
기억장치기억장치
시스템 관리자 프로그램
시스템 관리자 데이터
...
프로그램 1
프로그램 2
시스템 관리자 프로그램
시스템 관리자 데이터
프로그램 1
프로그램 2
기억장치 관리자기억장치 관리자
신라대학교 컴퓨터공학과 시스템 프로그래밍25
기억장치기억장치 (6)(6) 세그먼트 기억장치 관리
기억장치
데이터 3 세그먼트
프로그램 1 세그먼트
논리적주소
프로그램 1
데이터2
프로그램 세그먼트주소 프로그램 2 세그먼트
데이터 1 세그먼트
데이터 2 세그먼트데이터세그먼트주소
++
++
기계적주소
신라대학교 컴퓨터공학과 시스템 프로그래밍26
8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (1)(1)
1 MB 의 주소 공간을 지원 바이트 단위의 메모리 접근 20 bit 메모리 주소 버스를 사용 220 = 1 MB
워드 또는 바이트 단위의 메모리 입출력 가능 16 bit 데이터 버스를 지원 하나의 메모리 접근 사이클에 워드 단위의 입출력을
수행하나 바이트 단위 접근을 위해 주소 뱅크 구조를 사용 그림 3.4 참조
기억장치의 워드 구성은 little-endian form
신라대학교 컴퓨터공학과 시스템 프로그래밍
8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (2)(2)
신라대학교 컴퓨터공학과 시스템 프로그래밍28
8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (3)(3)
세그먼트 기억장치 관리 기법을 사용 하나의 세그먼트는 64 KB 크기 명령어 주소 또는 데이터 주소를 나타내는 논리적 주소는 하나의
세그먼트 내에서의 오프셋 (offset) 주소 16 bit 로 표현
실제 기억장소 접근 시에 물리적 주소 계산 물리적 주소 = 세그먼트 시작 주소 + 논리적 주소
신라대학교 컴퓨터공학과 시스템 프로그래밍
8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (4)(4)
데이터 Read/Write 규칙 기억장치 주소 : 바이트단위 , 홀 / 짝의 값 단어주소는 2 씩 증가하며 짝수값 가짐 N 번지 접근 시 1 단어에 접근하면 자동적으로 N, N+1
바이트에 접근 N 번지의 긴 단어 접근 시에 4 개의 바이트에 접근
기억장치에서의 단어 배열 little-endian format 의 단어 구성을 지원 레지스터에서 기억장치로 데이터를 입출력할 때에는 하위
바이트를 먼저 입출력하고 상위 바이트를 입출력한다 그림 3.6 참조
신라대학교 컴퓨터공학과 시스템 프로그래밍
레지스터레지스터 레지스터의 종류와 형태 세그먼트레지스터와 물리주소 논리주소와 물리주소 명령어 포인터의 동작 데이터의 표현
신라대학교 컴퓨터공학과 시스템 프로그래밍31
레지스터의 종류레지스터의 종류
16 bit 레지스터 14 개 지원 그림 3.7 참조 데이터 레지스터 : 4 개 인덱스 레지스터 : 2 개 포인터 레지스터 : 2 개 명령어 포인터 레지스터 : 1 개 플래그 레지스터 : 1 개 세그먼트 레지스터 : 4 개
신라대학교 컴퓨터공학과 시스템 프로그래밍
데이터 레지스터데이터 레지스터
AHAH
1616 비트비트
88 비트비트 88 비트비트
BHBH
CHCH
DHDH
ALAL
BLBL
CLCL
DLDL
AXAX
BXBX
CXCX
DXDX
3232 비트비트
EAXEAX
EBXEBX
ECXECX
EDXEDX
신라대학교 컴퓨터공학과 시스템 프로그래밍
포인터와 인덱스 레지스터포인터와 인덱스 레지스터포인터와 인덱스 레지스터포인터와 인덱스 레지스터
SISI
DIDI
ESPESP
EBPEBP
ESIESI
EDIEDI
SPSP
BPBP
Stack PointerStack Pointer
Base PointerBase Pointer
Source IndexSource Index
Destination IndexDestination Index
1616 비트비트
3232 비트비트
신라대학교 컴퓨터공학과 시스템 프로그래밍
세그먼트 레지스터세그먼트 레지스터
Code Segment : CSCode Segment : CS
Data Segment : DSData Segment : DS
Stack Segment : SSStack Segment : SS
Extra Segment : ESExtra Segment : ES
신라대학교 컴퓨터공학과 시스템 프로그래밍
플래그 레지스터의 구성플래그 레지스터의 구성
상위
오버플로우
하위
× × × × O D I T S Z × A P C× ×
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
인터럽트인에이블
디렉션
트랩
사인
제로
보조캐리
패리티
캐리
신라대학교 컴퓨터공학과 시스템 프로그래밍
세그먼트레지스터와 물리주소세그먼트레지스터와 물리주소1616 비트비트 44 비트비트
세그먼트 레지스터값 세그먼트 레지스터값
오프셋오프셋 (offset)(offset) 값 값
CPUCPU 로부터 출력되는 실제주소값 로부터 출력되는 실제주소값
신라대학교 컴퓨터공학과 시스템 프로그래밍
메모리 공간에서 세그먼트 영역메모리 공간에서 세그먼트 영역FFFFFHFFFFFH
데이터 세그먼트데이터 세그먼트
코드 세그먼트코드 세그먼트
스텍 세그먼트스텍 세그먼트
엑스트라 세그먼트엑스트라 세그먼트
EFFFFHEFFFFH
E0000HE0000H
C3FEFHC3FEFH
B3FF0HB3FF0H
7D260H7D260H
6D260H6D260H
6288FH6288FH
52B90H52B90H
00000H00000H
E000E000
DSDS
B3FFB3FF
CSCS
6D266D26
SSSS
52B952B9
ESES
×16×16
×16×16
×16×16
×16×16
신라대학교 컴퓨터공학과 시스템 프로그래밍
논리주소와 물리주소의 관계논리주소와 물리주소의 관계
1F001F00
세그먼트값세그먼트값 1F2A51F2A5물리주소물리주소
세그먼트 레지스터값세그먼트 레지스터값 ×16×16 == 세그먼트 물리번지세그먼트 물리번지
++++02A502A5
02A502A5
세그먼트세그먼트베이스주소베이스주소 1F0001F000
11 FF 00 00 00
00 22 AA 55++
11 FF 22 AA 55
신라대학교 컴퓨터공학과 시스템 프로그래밍
명령어 포인터의 동작명령어 포인터의 동작
F0000F0000
기억장치기억장치코드 세그먼트코드 세그먼트
F0001F0001
8086 CPU8086 CPUEU : F0201 EU : F0201 주소의 주소의 명령 실행명령 실행
×16×16
......F0204F0204
F0205F0205
F0206F0206
F0207F0207
CSCS
F000F000F0202F0202F0203F0203F0204F0204F0205F0205
BIUBIU
명명령령큐큐
F0206F0206IPIP
신라대학교 컴퓨터공학과 시스템 프로그래밍40
레지스터의 특성레지스터의 특성 직접 엑세스 가능한 레지스터
AX, BX, CX, DX AH, BH, CH, DH AL, BL, CL, DL SI, DI BP, SP DS, ES, SS
직접 수정이 가능한 플래그 CF, DF, IF
Recommended