1. 8086내부구조1. 8086의 구성1) 1978년에 미국 INTEL사가 개발한 16Bit Microprocessor2) 버스(Bus)의 구조(1) 데이터(Data) 버스 : 16bit(2) 제어(Control) 버스 : 16bit(3) 어드레스(Address) 버스 : 20bit※ 1M 바이트 (00000H∼FFFFFH)의 메모리 공간을 가짐. 최대 64K 바이트의 논리 세그먼트로 나누어져 취급한다. 이를 위해 어드레스 값은 세그먼트값과 오프셋값에 의해 관리된다.3) 14개의 고속 레지스터(Register) 내장4) MAXIMUM 모드와 MINIMUM 모드중 선택 사용 가능(1) MAXIMUM 모드 : 다수의 디바이스를 처리하는 대규모 시스템용(2) MINIMUM 모드 : 중/소규모의 시스템용5) 40PIN으로 구성6) 각종 I/O 소자(8255, 8251)와 접속 가능7) 다양한 명령어 사용으로 프로그래밍의 간소화 가능8) 어드레싱 모드가 강화되어 크게 4종류의 어드레싱이 가능(1) 직접 어드레싱 모드 (Direct Addressing Mode)(2) 레지스터 간접 어드레싱 모드 (Register Addressing Mode)(3) 인덱스 어드레싱 모드 (Index Addressing Mode)(4) 베이스 인덱스 어드레싱 모드 (Base Index Addressing Mode)2. CPU의 구조1) 구조핀 이름내 용NMINon-Maskable Interrupt 요구 단자INTR8259 인터럽트 컨트롤러를 통한 인터럽트 요구CLK수정발진기의 입력을 8284에 연결하여 CPU에 공급RESET8284에 연결되어, CPU를 RESET시킴. 리셋 후의 동작은 FFFF0H의 메모리 명령코드에서 실행 시작READYCPU와 주변소자 간의 데이터 전송 속도 차이를 위해 CPU의 버스 억세스를 지연TEST다른 프로세서와 명령 실행의 동기를 취하기 위해서 만들어진 신호. WAIT 명령을 실행하면 L이 될 때까지 WAITHOLDCPU HOLD 요구MN/MXCPU의 모드 설PROM (Electrically Erasable ROM) : 전기 신호에 의해 내용을 지울 수 있는 ROMRAMSRAM (Static RAM) : 플립플롭을 이용, 제조 복잡, 기억 밀도가 적다, Refresh가 필요없다, 고속, 가격이 비싸다DRAM (Dynamic RAM) : 콘덴서를 이용, 제조 간단, 기억 밀도가 높다, Refresh가 필요, 저속, 가격이 싸다8255A병렬 입출력 소자, 24개의 입출력 단자, 3개의 모드 설정 가능8253Timer/Counter, 플립플롭형 16비트 다운 카운터를 내장8251직렬 입출력 소자, RS-232C를 통해 주로 비동기 통신8259인터럽트 컨트롤러, 인터럽트 신호를 관리해 CPU에 전달74LS373래치 버퍼, 어드레스 신호를 각 소자에 공급74LS245데이터 입출력 버퍼, 양방향 신호 사용3) CPU의 내부구조4) 8086의 REGISTER(레지스터)레지스터내 용범용레지스터AX어큐물레이터(Accumulator) : 모든 연산 명령에 사용되는 레지스터.BXBase Register : 임의의 번지 지정에 사용되는 어드레스 레지스터CXCount Register : 스트링 조작 명령이나 반복 루프의 계수기로 사용DXData Register : 간접 어드레스에 의한 입출력 명령시 어드레스 지정에 사용포인터/인덱스SPStack Pointer : 스택 내의 번지 지정을 위한 레지스터BPBase Pointer : 간접 어드레스에 있어서 베이스레지스터 지정SISource Index : 스트링 명령 등에서 소스 데이터의 어드레스 지정DIDestination Index : 스트링 명령 등에서 목적(대상) 어드레스 지정IPInstruction Pointer : 현재 수행중인 명령의 주소 지정FLAGFlag Register : 각종 연산이나, 논리 명령에 의한 결과 등의 상태를 나타냄세그먼트레지스터CSCode Segment : 프로그램의 명령어들이 놓여지는 세그먼트DSData Segment : 프로그램에서 사용하는 데이터를 저장SS(2) 또 분할은 할 수 없지만 똑같이 연산처리를 할 수 있는 포인터 및 인덱스 레지스터 SP,BP,SI,DI의 2그룹이 있다.이 레지스터들은 소스 혹은 목적지 오퍼랜드의 어느 쪽으로도 사용할 수 있다. 8비트 CPU에서 연산 결과를 저장하는 레지스터는 어큐뮬레이터(Accumulator)라는 특정한 레지스터로 한정되어 있었으나, 이 레지스터들은 조금은 예외가 있지만 전부 어큐뮬레이터로도 이용할 수 있다. 그래서 연산 프로그램을 만들때 어느 레지스터에 저장할 것인지를 신경쓰지 않아도 된다.1. 데이터 레지스터(1) AX/AL : 16비트/8비트 어큐뮬레이터1 산술논리연산의 중심이 된다(곱셈/나눗셈에서는 AX만 사용).2 입력/출력 명령에 주로 사용된다.3 다른 레지스터를 사용할 경우보다 명령 바이트 수가 짧게 되어, 실행시간이 빠르게 되는 장점이 있다.(2) BX : 16비트 베이스 레지스터간접 번지지정에서 어드레스 레지스터 혹은 베이스 레지스터로 사용한다.(3) CX/CL : 16비트.8비트 카운터 레지스터루프 명령, 스트링 명령 등에서 루프 수의 오토 카우터로 사용한다.CL 레지스터는 시프트/로테이트 명령에서 시프트 수/로테이트 수를 지정한다.(4) DX(Data register) : 16비트 데이터 레지스터간접 번지지정에 의한 입력/출력 명령에서 I/O 장치의 어드레스를 지정하는 데 사용한다. 또 곱셈/나눗셈 명령에서 AX 레지스터와 같이 보조 어큐뮬레이터로도 사용한다.2. 포인터, 인덱스 레지스터(1) 포인터(pointer) 레지스터1 SP(Stack Pointer) : 16비트스텍을 조작하는 데 사용된다. SS(Stack Segment)와 함께 사용한다.2 BP(Base Pointer) : 16비트스텍 세그면트 SS에 있는 데이터를 액세스할 때 사용한다. 또 다른 영역의 데이터를 간접 번지지정을 액세스할 때 사용한다. 16비트 산술연산 및 논리연산 등 보통의 범용 레지스터로도 사용할 수 있다.(2) 인덱스(Index) 레지스터1 SI(Source Ind가 있기 때문에 실제로 IP는 EU(명령실행부)에서 실행되고 잇는 명령의 어드레스보다는 수 바이트 지난 다음의 어드레스가 저장되어 있는 것이 보통이다. 다음 그림은 8086 CPU의 IP 레지스터 동작을 예를 들어 설명한다.어드레스코드 세그먼트EU F0201번지의 명령실행F000F001CSF0202의 코드F0201F0000F0203의 코드F0202F0204의 코드F0203F0205의 코드F0204IPF02050206F0206명령 큐 ↑1 현재 EU에서 실행 중인 명령은 F0201번지의 코드이고, BIU에 있는 명령 큐에서 F0205번지의 명령 코드가 이미 패치되어 있다고 하면,2 IP는 다음에 패치할 예정인 F0206번지를 지시하고 있다(실제로 IP가 지시한 것은 0206번지이고, 코드 세그먼트 시작 어드레스는 코드 세그먼트 레지스터가 지시한다).3 8086의 경우, 명령 페치는 2바이트씩 실행하므로 F0206과 F0207번지의 코드가 명령 큐에 들어오면 큐에는 공백이 없기 때문에 EU에서 명령의 실행을 진행하여 2바이트 공백이 발생하기까지 IP는 F0208번지의 코드를 지시한다.4 브랜치 명령(예를 들면 CALL,INT 명령 등)에서는 다른 명령으로 제어를 이동할 대 되돌려 주는 번지를 스택영역에 자동으로 대피시킨다.5 이 때 대피된 어드레스는 브랜치 명령으로 브랜치한 어드레스에서 명령을 계속패치해야 하며, 8086에서는 IP가 실행 중인 명령보다 수 바이트분 진행한 어드레스를 지시하고 있으므로 그대로 IP를 스택에 대피시키면되돌려 주는 번지에는 차이가 있게 된다.이것을 피하기 위해 8086에서는 브랜치 명령 및 인터럽트가 발생해서 IP의 내용을 대피시킬 때 자동적으로IP내용을 실행 중인 다음 명령의 어드레스로 보정시킨 후 대피 동작을 실행한다.8086은 20비트 어드레스에 따라 1M 바이트(1,024,576바이트) 메모리 공간을 액세스할 수 있지만, 16비트 IP를 이용해서 어떻게 어드레스를 지정하는가각 문제로 된다. 이것을 해결하는 것이 세그먼크 레지스터수를 표시한다. 따라서 이 플래그는 연산결과가 +인지혹은 -인지를 나타내는 데 사용한다.(6) OF(Overflow Flag)부호있는 연산결과 오버플로가 발생하면 세트된다. 바이트 연산의 경우에는 -128 ∼ +127,워드 연산의 경우에는 -32768 ∼ +32767이 넘었다는 것을 의미한다.2. 컨트롤 플래그 (Control Flag)(1) DF(Direction Flag)스트링 명령에서 연속해서 문자열을 처리할 때 자동으로 포인터의 증가/감소를 지시할 때 사용한다.(2) IF(Interrupt enable Flag)외부 인터럽트를 인에이블/디스에이블하기 위한 플래그이다.(3) TF(Trap Flag)이것은 프로그램을 디버그하기 위해 사용하는 플래그로, TF가 "1"로 세트되어 있으면 CPU는 1 명령을 실행하기 위해 내부 인터럽트를 발생한다. 이와 같은 동작을 싱글 스탭이라 부른다.▷ 세그먼트 레지스터1. 세그먼트 레지스터란?8086의 어드레스 버스는 20비트 이므로 220= 1M(1,048,576) 바이트의 어드레스를 지정 할 수 잇따. 세그먼크 레지스터는 그림에서처럼 20비트 어드레스 공간의 상위 16비트를 지정하기 위한 레지스터이고, 이 내용에 포인터 레지스터의 내용을 더해서 20비트의 물리 어드레스를 만든다.이와 같은 방법으로 물리 어드레스를 지정하면 1개의 세그먼트 레지스터 값에 대해 16비트만큼의 어드레스 공간(216 = 65536 = 64K 바이트)을 지정할 수 있다. 이 관계를 그림에 정리하여 나타내었다.그램에서 보면 알 수 있듯이 세그먼트는 "크"게 코드 세그먼트 (Code Segment), 데이터 세그먼트(Data Segment), 엑스트라 세그먼트(Extra Segment), 스택 세그먼트(Stack segment)의 4종류로 나누어 진다. 각각의 세그먼트의 시작 어드레스를 베이스 어드레스라 부고, 그것에 대응되는 4개의 세그먼트에 따라서 지정된다. 이 4개의 세그먼트 레지스터와 세그먼트 베이스와의 관계를 표 1-2에 정리하여 놓았다.세있다.
.광다이오드(Photo diode)Photo diode는 광전압효과(접합부가 빛에 노출될 경우 반도체의 P-N 접합부에서 전압이 생기는 현상)을 이용한 광검출기이다.Photo diode는 작동 및 구조에 따라서 PN Photo diode, PIN Photo diode, Schottky형 Photo diode, Avalanche형 Photo diode등으로 구분되며, 일반적으로 메사(mesa)형, 플래너(planar)형, 및 PIN형이 있다.{이것의 특징을 살펴보면 먼저 메사형은 구조가 간단하며 태양전지나 광전스위치 등에 이용되는 것이 많다.플래너형은 PN접합부의 Si결정표면의 노출부분이 산화막으로 보호되어 있으며, 암전류를 작게 하는 구조로 되어있다. 그래서 미약한 광검출, 넓은 동작영역, 여러 개의 포토다이오드를 집적할 경우 사용된다.PIN형은 P와 N형 반도체 사이에 고저항의 I(intrinsic:진성)형 반도체 층을 삽입한 것으로 정전용량이 작아 고주파수의 광점멸에 대해서도 고속응답이 가능하여 광통신용의 수광기 등에 사용되고 있다.Photo diode의 특징으로는 낮은 잡음, 넓은 파장감응도, 기계적 안정도, 가볍고 간단함, 그리고 긴 수명 등이 있는데, 가장 중요한 특징으로는 동작속도가 매우 빠른 것이다. 그렇기 때문에 고도의 옵트 일렉트로닉스용 수광소자에 적합하다. 또한 광의 강도와 소자에서 흐르는 전류의 강도가 비례하고 있기 때문에 조도계등에도 사용된다.포토 다이오드에 대하여 주의할 점은 다이오드라는 그 자체의 이름뿐이며 다이오드의 일반적 특징인 순방향에서는 동작하지 않는다는 것이다. 즉, 광을 감지하지 못한다. 그래서 역방향으로 광이 닿으면 전류가 흐르게 된다. 다시 말하면, 애노드에서 캐소드로 향하는 화살표에대해서 역전류가 된다. 이것을 특히 광전류라 한다.포토다이오드의 심벌을 보면 이름은 정류, 검파용의 다이오드와 같으며, A(애노드)와K(캐소드)로 되어있다. 전류의 흐르는 방향은 화살표와 같으나 수광소자로서 사용할 경우 역전압을 걸어둔다. 그리고 광을 받았을 때의 역전류가 출력이 된다. 이때 화살표 방향으로 전류를 흐르게 하면 광을 감지하지 못하게 된다. 포토 다이오드에 빛이 입사하면, 회로가 개방될 경우, 개방 전압{V_oc가 발생하고, 단락될 경우는 단락 전류{I_S가 흐른다. {V_oc는 다음의 식으로 나타낼 수 있다.{Voc= kT over q ln left( I_L over I_S + 1 right)단,{I_L over I_S >> 1일 때는 {Voc = kT over q ln I_L over I_SR : 볼쯔만 상수 T : 절대온도 q: 전자의 전하 {I_L: 광전류{I_S: 포토다이오드의 포화전류윗식에서 알 수 있듯이, {V_oc는 {I_L을 로그 압축한 특성이 된다. 단락전류 {I_SC는, 입사 광량 L에 비례하지만, 실제로는 부하저항 {R_L이 있으면 사정이 변한다. {R_L이 클수록 출력 전압{V_OUT의 포화가 빨리 일어남을 알 수 있다.또, 역바이어스 전압{E_b를 걸면, 부하선이 -{E_b만큼 전압축을 따라 이동하기 때문에, {V_OUT의 포화는 일어나기 어렵게 되고, {R_L과 {V_OUT의 직선 영역이 넓어진다.P형 반도체와 N형 반도체를 접합하면 P형의 정공이 N형으로 확산해 들어가고 N형의 전자가 P형으로 확산한다. 확산해 들어온 전자와 정공은 접합부근에서 만나 결합함으로써 소멸되어 버리고 접합부근 P형에는 (-)전하를 띤 억셉터 이온이, N형에는(+)전하를 띤 도너 이온이 남게 된다.접합부에는 이 전하의 존재로 인해 전계가 존재하게 되고 이 전계 때문에 더 이상의 확산현상은 일어나지 않게 된다. 이렇게 전자와 정공은 존재하지 않고 고정전하만 존재하는 P-N접합부근의 영역을 공립영역, 혹은 전이영역이라 한다.그리고 그것을 접합시켰을 때의 에너지 밴드 그림을 나타내었다. 빛이 조사되면 빛에너지를 받아 전지-정공쌍이 발생한다. 공핍영역에서 발생된 전자-정공쌍은 전계의 영향으로 바로 전자는 N형 중성영역으로, 정공은 P형 중성영역으로 쓸려간다.한편 공핍영역 끝으로부터 확산거리 내에 발생된 P형의 전자나 N형의 정공은 확산해서 공핍영역 내로 들어갈 수 있는데 이들 역시 전계에 의해 바로 N형이나 P형의 중성영역으로 쓸려가게 된다. 이 결과로 P형 쪽에는 정공이, N형 쪽에는 전자가 축적되게 되어 접합의 전극에는 기전력이 발생하게 되고 외부 회로에 전류를 흘릴 수 있게 된다. 이러한 빛 조사에 의한 기전력의 발생을 광기전력 효과라 한다. 빛을 조사하지 않을 때의 전류-전압 특성은 다음과 같이 표시된다.{I=I_0 left( exp left( qV over kT right) -1 right) - I_L......(1)여기서, {I_0: 포화전류, k : 볼츠만 상수광을 조사하면 광전류 이 발생하게 되는데 이때 접합을 흐르는 전류는 다음과 같다.{I=I_0 left( exp left( qV over kT right) -1 right) - I_L.......(2)식(2)와 같이 되어 전류-전압 특성은 광을 조사하지 않을 때의 특성을 전류측에 평행하게 IL만큼 이동시킨 것이 된다. 광조사시의 전류-전압 특성에서 전류 축과의 교점을 단락광 전류 Isc, 전압축과의 교점을 개방전압 라 부른다. 는 식(2)에서 I=0 으로 둠으로써 구할 수 있다.{V_OC = kT over q...........(3)그림 1-2(b)의 제4상한에서 외부로 끌어낼 수 있는 전력 P는 식(4)로 표시된다.{P=IV =left( I_0 left( exp left( qV over kT right) -1 right) - I_L right) TIMES V.....(4)최대 전력은 dP/dV=0로 정해지는데 그 때의 전류를 {I_m, 전압을 {V_m이라 하면 최대 전력은 다음과 같이 주어진다.{P_m = I_m V_m = I_SC V_OC F_F................(5){F_F를 곡선인자라 하는데 센서의 구조와 밀접한 관계가 있다.{F_F가 클수록 검출 효율이 커지게 되므로 바람직하다. 단락 광전류가 광감도에 비례하는 것에 비해 개방 전압은 식(3)에서 알 수 있듯이 광감도에 대수적으로 변화한다. 광 센서로서는 입력에 대해 출력이 선형적인 것이 바람직하므로 전류를 측정하는 모드로 사용하는 때가 많다. 한편 p-n접합을 이용해 광을 측정하는 경우 외부인가 전압 없이 제4상한에서 동작시켜 {I_SC를 측정하는 방법과 외부에서 접합에 역방향 바이어스를 가해 제3상한에서 동작시켜 그 역방향 전류를 측정하는 방법은 두 가지가 있다.포토다이오드의 응답시간은 캐리어 확산시간, 공핍영역시간, 접합용량등이 있는데, 이중 접합용량에 의한 특성을 보자면, 직렬저항을 {