라벨이 #전자계산기구조인 게시물 표시

[전자계산기구조] 연관메모리

[전자계산기구조] 연관메모리 =연관 기억장치(Associative Memory) CPU가 찾고자하는 주기억장치 메모리가 캐시 메모리 어디에 있는지 빠르게 검색할 수 있게 사용하는 메모리 CAM(Content Addressable Memory)라고 부릅니다. 매핑 테이블을 사용합니다. 외부 인자와 내용을 비교하기 위한 병렬 판독 회로가 필요 하여 추가적인 비용을 요구합니다. 연관기억장치는 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 Access할 수 있는 기억장치 특징 주소에 의해서만 접근이 가능한 기억장치보다 정보 검색이 신속하다. 캐시 메모리나 가상 메모리 관리 기법에서 사용하는 Mapping Table에 사용된다. 외부의 인자와 내용을 비교하기 위한 병렬 판독 논리회로를 갖고 있기 때문에 하드웨어 비용이 증가한다. 출처 http://ehpub.co.kr/tag/%EC%97%B0%EA%B4%80-%EB%A9%94%EB%AA%A8%EB%A6%AC/ https://devkim93.tistory.com/entry/%EC%97%B0%EA%B4%80%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98-%EB%B3%B5%EC%88%98-%EB%AA%A8%EB%93%88-%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98

[전자계산기구조] 마이크로오퍼레이션

이미지
[전자계산기구조] 마이크로오퍼레이션 마이크로 오퍼레이션(Micro Operation) Instruction을 수행하기 위해 CPU내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작 CPU의 하나의 Clock Pulse동안 실행되는 레지스터에 저장된 데이터에 의한 기본 동작 시프트(Shift), 로드(load) 등이 있다. 한 개의 마이크로 연산 수행시간을 마이크로 사이클 타임이라 부르며 CPU 속도를 나타내는 척도로 사용된다. 제어장치에서 발생하는 제어신호에 의해 Micro Operation의 순서가 결정 여러 단계의 Micro Operation을 통해 하나의 Instruction(마이크로 명령)을 수행 마이크로 사이클 타임 동기 고정식 제어기 구현이 단순함 동기 가변식 제어기 구현이 복잡함 CPU의 시간 낭비 보완 동작 시간이 유사한 Micro Operation들 끼리 그룹을 만들어 그룹별 Micro Cycle Time 정의 각 그룹간 Micro Cycle Time의 동기를 맞추기 위해 Micro Cycle Time을 정수배가 되게 함 비동기식 제어기 매우 복잡(거의 사용되지 않음) CPU의 시간 낭비가 거의 없음 모든 Micro Operation에 대하여 서로 다른 Micro Cycle Time을 설정 마이크로프로세서 = CPU 하나의 프로그램은 여러개의 마이크로오퍼레이션(OP)로 구성된다. 마이크로 오퍼레이션이 모여서 사이클을 만든다. 여러 클럭 펄스동안 하나의 명령어가 처리 됨. 3GHz = 1초에 30억번 진동을 함 출처 https://www.youtube.com/watch?v=EpycIp-R7CU https://m.blog.naver.com/PostView.nhn?blogId=fishmanys&logNo=220372746372&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[전자계산기구조] 주소지정방식

이미지
[전자계산기구조] 주소지정방식 유효주소 (Effective Address) 데이터가 저장된 기억장치의 실제주를 유효주소라 한다. 주어진 주소지정방식에 의해 얻어진 데이터의 기억장치 주소를 가르킨다. 직접 주소 지정 방식 (Direct Address Mode) 명령어의 주소 필드의 내용이 유효 주소가 되는 방식이다. 데이터의 인출을 위해 기억장치를 한번만 접근 하나, 지정할 수 있는 기억장치 주소 공간이 제한적이다. 단, 레지스터 접근 방식보다는 느리다. 간접 주소 지정 방식 (Indirect Address Mode) 명령어의 주소 필드에 유효주소의 주소가 저장되어 있는 방식이다. 두 번의 기억장치 접근이 필요 하며 기억장치를 임의로 사용한다거나 프로그램상의 융통성을 발휘할 수 있다. 실제 데이터를 가져오기 위해서는 메모리를 2번 이상 참조해야 한다. 명령어의 주소(operand) 부분에 레지스터의 주소가 들어 있다. 직접 주소 방식보다 속도가 느리다. 명령어 내의 오퍼랜드부에 실제 데이터가 저장된 장소의 번지를 가진 기억장소의 번지를 표현함으로써, 명령의 주소필드 길이가 짧고 제한되어 있어도 긴 주소에 접근 가능한 방식이다. 주소지정 방식 중 데이터를 읽어올 때 참조횟수가 가장 많은 방법이다. 묵시적 주소 지정 방식 (Implied Mode) 명령어를 실행하는데 필요한 데이터의 위치가 지정되어 있지 않고, 명령어의 정의에 의해 정해져 있는 방식 이다. 누산기를 사용하는 1 주소 명령이나, 스택 구조의 컴퓨터에서의 무주소 명령어도 묵시적 주소 방식에 해당한다. 즉시 주소 지정 방식 (Immediate Mode) 명령어의 주소 필드에 데이터가 들어있으며, 상수의 정의나 변수 값의 초기화에 편리하다. 데이터를 얻기 위한 기억장치 접근이 필요 없으므로  명령어 사이클에서 한 개의 기억장치 접근 사이클을 줄일 수 있으나, 사용할 수 있는 수의 크기가 ...

[전자계산기구조] 플립플롭이란?

이미지
[전자계산기구조] 플립플롭이란? 플립플롭 회로 기억 소자 = 플립플롭 플립플롭은 전원이 공급되고 있는 한, 상태의 변화를 위한 신호가 발생할 때까지 현재의 상태를 그대로 유지하는 논리회로 => 기억 기능 을 가지고  있다. 한(1) 비트를 기억하는 메모리 소자 이며 레지스터 구성회로로 널리 사용되고 있다. 플립플롭에 전류가 부가되면 현재의 반대 상태로 변하며 (0에서 1로 or 1에서 0으로), 그 상태를 계속 유지하므로 한 비트의 정보를 저장할 수 있는 능력을 가지고 있다. 여러개의 트랜지스터로 만들어지며, SRAM이나 하드웨어 레지스터 등을 구성하는데 사용한다. 종류는 RS플립플롭, D플립플롭, JK플립플롭, T플립플롭 등 여러 종류가 있다. RS 플립플롭(NOR 게이트)<- 사실은 래치 R에 1을 넣으면 -> Q(출력) 0 S에 1을 넣으면 -> Q(출력) 1 RS 플립플롭(NAND 게이트) <- 사실은 래치 R에 1을 넣으면 -> Q는 1 S에 1을 넣으면 -> Q는 0 클럭형 RS 플립플롭 <- 진짜 플립플롭 JK 플립플롭 RS 플립플롭에서 S=R=1일때 동작되지 않는 결점을 보완한 플립플롭 RS의 플립플롭 입력선 S와 R을 J와 K의 입력선으로 사용 SR 플립플롭의 단점을 보완하기 위해서 Q, Q'를 입력으로 피드백 시킴 D 플립플롭 JK 플립플롭에서 J값을 그대로 가져옴 T 플립플롭 JK 플립플롭에서 00과 11을 가져옴 마스터 슬레이브 플립플롭 출력 측의 일부 신호가 입력 측에 궤환되어 유발되는 레이스 현상 을 방지하기 위하여 고안된 플립플롭 레이스 현상 : 신호가 늘어지는 경우. 오동작이 발생가능  마스터 FF -> 상승엣지에서 발동 슬레브 FF -...

[전자계산기구조] VLIW(Very Long Instruction Word)

이미지
[전자계산기구조] VLIW(Very Long Instruction Word) 프로세서 내에 파이프라인된 기능 유니트를 여러 개 포함시켜 매 사이클마다 한 개 이상 명령어를 동시에 처리할 수 있다. 하나의 명령어 형식에 다수의 연산코드를 포함시켜 여러 개의 기능 유니트에서 연산들을 동시에 실행한다. 여러 opcode 필드가 있는 긴 명령어 하나에 독립적인 연산 여러개를 정의하고 이들을 한꺼번에 내보내는 명령어이다. VLIW는 컴파일러 단에서 명령어의 배치가 이루어지는 방식이기 때문에, 슈퍼 스칼라 등의 다른 병렬연산을 위한 방식과는 달리 하드웨어 단에서 명령어 스케줄링을 하지 않는다. 때문에 회로를 단순하게 개발 하는 것이 가능해지며, 프로세서에서 해당 분야를 처리하지 않아도 되므로 회로 활용 효율이 상승한다. 또한 지정된 하드웨어 내에서 컴파일 시 하드웨어의 잔여부분을 최대한 추적하여 명령어 워드를 만들기 때문에 휴지 상태로 전력을 소모하는 잉여 회로가 감소하게 되어 회로 전체적 활용도가 높아지게 된다. 때문에 VLIW 구조의 프로세서는 대체적으로 프로세서 크기가 상대적으로 작으며 작동시 잉여 유니트가 거의 없는것 이 특색이다. 출처 https://blog.naver.com/PostView.nhn?blogId=padagi20&logNo=220964454857&parentCategoryNo=&categoryNo=22&viewDate=&isShowPopularPosts=true&from=search

[전자계산기구조] Flynn의 병렬컴퓨터 분류방식(SISD ,SIMD, MISD, MIMD)

이미지
[전자계산기구조] Flynn의 병렬컴퓨터 분류방식(SISD ,SIMD, MISD, MIMD) SSID(Single Instruction Single Data Stream) 단일 제어장치(Single Instruction) + 한 CPU가 처리(Single Data Stream) 제어장치(명령어를 주는 신호)와 프로세서를 각각 하나씩 갖는 구조 한 번에 한 개씩의 명령어와 데이터를 처리하는 단일 프로세서 시스템 명령어가 순서대로 실행 되지만 실행과정은 여러 개의 단계들로 나누어 중첩시켜 실행 속도를 높이도록 파이프라인으로 되어있는것이 보통 파이프라인 기법(시간적 병렬 프로세서 구조) 에 응용된다. =수직적 SIMD(Single Instruction Multiple Data Stream) 단일 제어장치 (Single Instruction) + 여러개의 CPU가 처리(Multiple Data Stream) 배열 프로세서 와 파이프라인이 이 분류에 속함 여러개의 프로세서들이 구성되고, 프로세서들의 동작은 모두 하나의 제어장치에 의해 제어 모든 프로세서들은 제어장치로부터 동일한 명령어를 받지만 명령어 실행 과정에서 서로 다른 데이터들을 사용 모든 프로세서들이 기억장치를 공유하는 경우도 있고, 각 프로세서가 기억 장치 모듈을 따로 가지고 분산 기억장치 구조도 있음 MISD(Multiple Instruction Single Data Stream) 다중  제어장치 (Multiple Instruction) + 하나의 CPU가 처리(Single Data Stream) 여러 개의 제어장치와 프로세서를 갖는 구조 각 프로세서들은 서로 다른 명령어들을 실행하지만 처리하는 데이터는 하나의 스트림 MIMD(Multiple Instruction Multiple Data Stream) 다중  제어장치 (Multiple Instruction) + 여러개 CPU가 처리(Multiple Data Str...

[전자계산기구조] 명령어 파이프라인

이미지
[전자계산기구조] 명령어 파이프라인 컴퓨터에 있어서 파이프라인(pipeline)구조는 CPU의 처리속도를 향상시키기 위한 방법 중의 하나로서, CPU의 내부 하드웨어를 여러 단계로 나누어 처리하는 기술이다.  벡터 프로세싱을 공간적인 병렬성이라 하면, 파이프라인은 시간적인 병렬성을 추구 한 번에 하나의 명령어만 실행하는 것이 아니라 하나의 명령어가 실행되는 도중에 다른 명령어의 실행을 시작하는 방법 으로 동시에 여러 개의 명령어를 실행한다. 프로세서 하나를 서로 다른 기능을 가진 여러 개의 서브 프로세서로 나누어, 각 서브 프로세서가 동시에 서로 다른 데이터를 처리하는 과정이다. 명령어당 수행 사이클(CPI)를 1에 가깝도록 하여, CPU의 성능을 향상시키는 기법 파이프라이닝을 사용하는 CPU의 각 파이프라인 단계는 서로 다른 하드웨어 자원을 사용한다. 각 서브 프로세서의 작업을 단계(stage)라 하며 단계 수 만큼의 속도 향상을 목표로 하지만 파이프라인 해저드로 인해 실제는 단계 수 만큼의 속도 향상은 불가능하다. ex) 4개의 파이프라인 스테이지를 갖는 CPU의 성능 향상은 최대 4배이다. 전체 워크로드(workload)에 대해 일정시간에 처리할 수 있는 처리량(throughput)을 향상시킬 수 있다. 가장 느린 파이프라이닝 단계에 의해 전체 시스템 성능 향상이 제약을 받는다. 하나의 명령어를 수행하는 데 여러 클럭(clock) 사이클이 필요하다. 명령어 파이프라이닝 4단계 명령어 인출(IF : Instruction Fetch) 명령어 해독(ID : Instruction Decode) 주소부 인출(OF : Operand Fetch) 실행(EX : Execute) 명령어 파이프라인의 최대 효율 저하 원인 오퍼랜드를 인출할 필요가 없는 명령어도 파이프라인의 모든 단계를 거쳐야 한다. 4단계 파이프라이닝에서, 다른 명령어의 IF(명령 인출) 단계와 OF(주소부 인...

[전자계산기구조] 1의보수 2의보수

[전자계산기구조] 1의보수 2의보수 보수 : 두 수의 합이 진법의 밑수(N)가 되게 하는 수 ex) 10진수 4의 10의 보수 -> 6,   10진수 2의 10의 보수 8 컴퓨터에서 음수를 표현하기 위해 처음 생각한 것은 1의 보수에 대한 표현입니다. 예를 들어  4 : 0000 0100 -4 : 1111 1011 이런식으로 표현을 했습니다. 여기에서 참고로 사용하는 것은 7비트만을 사용합니다. 그 이유는 전부인 8비트를 사용하면 음수값과 구별이 안 되기 때문입니다. 이 때 숫자값으로 사용되지 않는 맨 앞비트를 부호로 표현했습니다.  이를 사인비트라고 합니다. 그런데 1의 보수를 사용하다 보면 문제가 있습니다. 그 문제는 0이 2개가 생긴다는 것 입니다. +0 : 0000 0000 -0 : 1111 1111 0은 매우 중요한 숫자이므로 이러한 문제가 발생이 되면 안됩니다 그래서 2의 보수를 만들게 되었습니다. 2의 보수는 1의 보수의 +1입니다. 그래서 1111 1111은 0이 아니고 -1입니다. 0000 0001 -> 1111 1110(1의보수) -> 1111 1111(2의 보수) 그러므로 한 바이트의 범위는 -128 ~ 127이 됩니다. 물론 2의 보수를 사용한다면 연산이 쉽게 됩니다. 우리가 보통 사용하는 컴퓨터들은 뺄셈 로직이 없습니다. 뺄셈 로직이 있다면 보수를 사용할 이유가 없어집니다.  4-4를 그냥 연산하면 된다는 의미이겠지요. 하지만 뺄셈 로직이 없기 때문에 4-4를 4 + (-4)로 계산하게 됩니다. 4를 빼는것이 아니라 -4로 바꿔서 더하는 것입니다. 그럼 컴퓨터가 왜 2진수로 변환된 데이터만을 취급하는 이유에 대해 알아보겠습니다. 하드웨어적인 이유에서도 2의 보수를 사용하는 이유가 있습니다. 컴퓨터의 내부는 전자부품인 IC(Integrated Circuit =...

[전자계산기구조]주소 명령어 형식

이미지
[전자계산기구조]주소 명령어 형식 0 주소 명령어 형식 및 특징 오퍼레이션만 있고, 오퍼랜드가 없는 명령어 형식이다. 스택(STACK)구조에서 사용하는 명령어가 대부분이다. 스택에서 사용하는 명령어는 PUSH, POP 이 있다. PUSH : 스택에 자료를 입력하는 명령으로, 미리 지정되어 있는 레지스터나 기억장소에 있는 자료가 스택으로 입력된다. POP : 스택에서 자료를 출력하는 명령으로, 미리 지정된 레지스터나 기억장치로 스택의 자료가 출력되어 이동한다. 1 주소 명령어 형식 및 특징 오퍼랜드가 1개 있는 명령어 형식이다. 누산기(Accumulator)를 사용하고 있는 명령어가 대부분이다. 누산기를 사용하는 명령어에는 LOAD, STORE, ADD, MUL 등이 있다. LOAD A : 주기억장치 A에 기억된 데이터를 ACC에 적재한다. 오퍼랜드가 없는 명령어 형식 ADD B : 주기억장치 B에 있는 데이터와 ACC에 기억된 데이터와 더하여 다시 ACC에 기억한다. MUL C : 주기억장치 C에 있는 데이터와 ACC에 기억된 데이터와 곱하여 다시 ACC에 기억시킨다. STORE D : ACC에 기억되어 있는 데이터를 주기억장치 D에 저장한다. 2 주소 명령어 형식 및 특징 오퍼랜드가 2개 있는 명령어 형식이다. 명령어 수행 시 두 개의 오퍼랜드를 대상으로 연산을 하며, 그 결과를 첫 번째 있는 오퍼랜드인 Operand-1에 기억된다. 최종 결과는 Operand-1에 기억되므로 원래 기억하고 있던 Operand-1의 데이터는 잃어버린다. ADD A, B : A와 B를 더하여 그 결과를 A에 기억시킨다. MUL C, D : C와 D를 곱하여 그 결과를 C에 기억시킨다. MOV E, F : F에 기억된 데이터를 E에 기억시킨다. 출처 https://www.youtube.com/watch?v=ygJjcxE3u9s https://www.youtube.com/wa...

[전자계산기구조] CPU구조(레지스터 & ALU & CU & 버스 & 마이크로 연산)

이미지
[전자계산기구조] CPU구조(레지스터 & ALU & CU & 버스 & 마이크로 연산)CPU(Central Processing Unit) 컴퓨터 시스템의 두뇌 역할을 하는 중앙처리장치입니다. 레지스터, 산술논리유닛(ALU), 제어장치(CU), 버스로 구성합니다. 레지스터 CPU내에서 데이터를 기억하는 메모리 장치입니다. CPU내에서 처리할 명령어나 연산에 사용할 값이나 연산 결과를 일시적(휘발성) 으로 기억하는 장치입니다. 메모리 장치중에 가장 빠릅니다. 플리플롭과 래치(Latch)를 병렬로 구성합니다. PC(Program Counter) : 다음 번에 실행할 명령어 주소를 기억하는 레지스터 = 명령 계수기 IR(Instruction Register) : 현재 실행 중인 명령을 기억하는 레지스터 가장 최근에 인출한 명령어를 저장하는 레지스터 = 명령 레지스터 AC(Accumulator) : 연산 결과를 임시 로 저장하는 레지스터로 누산기라 부름 플래그 레지스터(Flag Register) : 상태를 기억하는 레지스터(오버플로우, 언더플로우, 캐리, 인터럽트 등의 PSW를 기억) 문제가 발생이 됐다 => 1 , 문제가 발생되지 않았다 => 0 PSW(Program Status Word) : 시스템 내부의 순간순간의 상태를 기록하고 있는 정보 MAR(Memory Address Register) : 데이터의 주소를 기억하는 레지스터 MBR(Memory Buffer Register) : 데이터를 임시로 기억하는 레지스터로 데이터를 처리하기 위해 반드시 거쳐감 BR(Base Register) : 명령의 시작 주소를 기억하는 레지스터 MSR(Major Status Register) : CPU의 주 상태를 저장하는 레지스터 = PSWR = 플래그 레지스터 S(Sign) : 0(양수) vs 1(음수) Z : 0(값 x) vs 1(값이 발생) V(오버플로우 발생했느냐) 베이스...

[전자계산기구조] RAID란?

이미지
[전자계산기구조] RAID란? 레이드란 Redundant Array of Independent Disk 의 약자로, 2개 이상의 디스크를 병렬로 처리하여 성능 및 안정성을 향상시키는 방식 입니다. 과거에는 주로 용량이 작은 디스크들을 연결하여 디스크 용량을 높이기 위해 사용되었습니다. 여러개의 디스크를 한 개의 대용량 디스크처럼 사용하는 기법으로 신뢰성과 효율성이 향상된다. 요즘에는 디스크 성능 향상에서 나아가 디스크 오류나 데이터 손실 등 장애에 대비하기 위한 용도로 사용되고 있습니다. 한 번 손실되거나 삭제된 데이터를 복구하기에 시간과 노력이 많이 소요되는 만큼, 데이터 손실을 방지하기 위한 일종의 대비책이라고 보시면 됩니다. 종합하면 한 개의 디스크에 데이터를 저장하는 방식이 아닌, 데이터 저장의 성능 및 안정성 확보를 위해 복수의 디스크를 구성하는 방식을 레이드(RAID) 라 합니다. 물론 이러한 레이드 방식을 적용하기 위해서는 1개 이상의 디스크가 필요합니다. 레이드의 종류 어떠한 방식으로 레이드를 구성하느냐에 따라 레이드 방식이 구분됩니다. 대표적인 레이드 방식을 간단히 소개합니다. 레이드 0 먼저, 레이드 0 방식입니다. 두 개 이상의 디스크에 데이터를 순차적으로 저장하는 방식입니다. 단순히 볼륨마다 디스크 스트립을 나열해 놓았기 때문에 스트라이핑(Striping)모드 라고 하며, 높은 신뢰성을 요구하기 보다는 성능과 용량을 중요시하는 시스템에 사용한다. 한 개의 디스크에 데이터를 처리하는게 아니라 복수개의 디스크에 데이터를 분산해 처리하기 때문에, 처리 속도가 향상된다는 강점을 지니고 있습니다. 하지만 하나의 디스크가 문제가 발생하면 레드0으로 구성된 모든 데이터가 유실된다는 단점을 지니고 있는데요. 오직 성능향상을 위한 구성방식 이라고 보면 됩니다. 레이드 1 다음으로, 레이드 1 방식입니다. 데이터 처리 시, 동일한 디스크에 똑같이 저장하는 방식입니다. (Disk mirro...

[전자계산기구조] 플래시 메모리(Flash Memory)

[전자계산기구조] 플래시 메모리(Flash Memory) 전원이 끊켜도 저장된 데이터를 보존하는 롬(ROM)의 장점과 정보의 입출력이 자유로운 램(RAM)의 장점을 동시에 지닌 반도체 소비전력이 작고, 전원이 꺼지더라도 저장된 정보가 사라지지 않은 채 유지되는 특성을 가진다. 계속해서 전원이 공급되는 비휘발성 메모리로, DRAM과 달리 전원이 끊기더라도 저장된 정보를 그대로 보존할 수 있을 뿐 아니라 정보의 입출력도 자유로워 디지털텔레비전, 디지털캠코더, 휴대전화, 디카, 게임, MP3등 널리 이용 된다. 종류는 크게 저장 용량이 큰 데이터저장형(NAND)과 처리속도가 빠른 코드저장형(NOR)의 2가지로 분류됩니다. 플레시 메모리(Flash Memory) 종류 및 특징 EPROM의 입력방식과 EEPROM의 소거방법의 장점을 결합한 것이 주요 특징이며, 플래시 메모리는 지우기의 한계가 있습니다. 플래시 메모리는 EEPROM의 한 종류지만 EEPROM과는 달리 블록 단위로 데이터를 기록할 수 있다. EPROM(Erasable PROM) : 저장되어 있는 데이터를 지우고 쓸 수 있는 ROM입니다. 데이터를 지우는 방법에 따라 다시 EEPROM, UVEPROM 으로 분류됩니다. EEPROM(Electrically Erasable PROM) : 고전압으로 데이터를 지우고, 삭제된 공간에 데이터를 다시 기록할 수 있는 메모리 입니다. 지우는 속도가 느립니다. UVEPROM(ultra-violet EPROM) : 자외선을 이용하여 데이터를 지웁니다. 노어 플래시(NOR Flash) 주로 핸드폰 메모리에 사용된다. 단가가 높음 바이트나 워드 단위로 읽기/쓰기가 가능하고 덮어쓰기와 지우기는 임의 접근할 수 없음 읽기 속도는 빠르나 , 데이터를 지우거나 덮어쓰기할 때 랜덤엑세스가 불가능해서 속도가 느림 낸드 플래시(NAND Flash) 대용량화가 쉽지만 속도는 느리다 하드 디스크와 가장 유사한 특성을 보임 read와 ...

[전자계산기구조] 스트로브(Strobe Pulse) & 핸드셰이킹(Handshaking)

[전자계산기구조] 스트로브(Strobe Pulse) & 핸드셰이킹(Handshaking) 비동기 데이터 전송 두 개의 독립적인 장치(ex : 기억장치, 입출력장치) 사이의 비동기적인 데이터 전송을 이루기 위해서는 데이터 전송시각을 알기 위한 제어 신호를 서로 교환하여 송수신 상태를 서로 맞춰야 한다. 동기를 맞추기 위한 제어 신호를 교환하는 방법에는 스트로브 펄스에 의한 방식과 핸드세이킹에 의한 방법이 있다. 스트로브 펄스(Strobe Pulse) 방식 데이터 버스와 한 개의 제어선을 이용 스트로브는 송신 장치나 수신 장치에 의하여 발생한다. 수신하는 장치에서 스트로브 펄스를 발생하여 송신부에게 데이터 전송을 요청합니다. 두 개의 독립적인 장치 사이의 비동기 적인 데이터 전송을 이루기 위해 전송시각을 알리는 제어 신호를 스트로브 신호라 하며, 한개의 제어선을 통해 상호 교환 수신 장치는 스트로브 펄스를 발생시켜 송신부로 하여금 데이터를 제공하도록 알린다. 메모리와 CPU 사이에서 정보를 교환할 때 사용 전송을 시작한 송신장치는 수신장치가 데이터를 받았는지를 알 수 없다. 핸드셰이킹(Handshaking) 방식 컴퓨터와 주변장치간에 Data 전송을 할 때 입,출력의 준비나 완료를 나타내는 신호(RDY, ADK)가 필요한 비동기식 병렬 입,출력 시스템 에 널리 쓰인다. 전송을 시작한 장치에 응답하는 제2의 제어 신호를 전송함으로써 스트로브 제어 방법보다는 높은 융통성과 신뢰성을 갖는다. 2~3개의 제어선을 이용 스풀링 버퍼링 출처 https://m.blog.naver.com/PostView.nhn?blogId=pusna25&logNo=100112226101&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[전자계산기구조] 인터럽트(Interrupt)

이미지
[전자계산기구조] 인터럽트(Interrupt) 인터럽트는 컴퓨터 구조에서 CPU의 활동에 많은 영향을 끼치는 중요한 개념이다. 인터럽트 '끼어 들다', '중단시키다' 정도의 의미를 가진 말로 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다. 입출력 장치 제어기에서 중앙처리장치로 보내는 신호 인터럽트가 발생하면 운영체제가 제어권을 받는다. 인터럽트 사이클 CPU가 어떤 프로그램을 순차적으로 수행하는 도중에 외부로부터 인터럽트 요구가 들어오게 되면, CPU는 원래의 프로그램 수행을 중단하고 요구된 인터럽트를 처리해주기 위한 프로그램을 먼저 수행한다. 인터럽트에 대한 처리가 끝나면 CPU는 원래의 프로그램으로 복귀(return)하여 그 수행을 계속한다.  인터럽트의 종류 인터럽트의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 나뉠 수 있다. 외부 인터럽트(비동기) 전원 이상 인터럽트(Power fail interrupt) 말 그대로 정전, 파워 이상 등 기계 착오 인터럽트(Machine check interrupt) CPU의 기능적인 오류 외부 신호 인터럽트(External interrupt) 타이머에 의한 인터럽트 : Preemptive개념을 생각하면 된다. 자원이 할당된 시간이 다 끝난 경우 키보드로 인터럽트 키를 누른 경우 : 대표적으로 Control + Alt + Delete 비동기 인터럽트 외부장치로부터 인터럽트 요청이 있을 경우 : I/O인터럽트는 아니다. 다른 개념이다 입출력 인터럽트(I/O interrupt) 입출력장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우 입출력 데이터에 이상이 있는 경우 하드웨어적 인터럽트로 프린트나 디스크 저장 시에 입출력 채널 확인, 준비, 할당, 완료 시...

[컴퓨터네트워크] BCD코드, EBCDIC코드, ASCll코드

이미지
[컴퓨터네트워크] BCD코드, EBCDIC코드,Excees-3 코드, ASCll코드 BCD 코드(Binary Coded Decimal) BCD코드란 2진수는 컴퓨터 같은 디지털 시스템에는 좋지만 그것을 사용하는 사용자(사람)에게는 매우 불편하기 때문에 2진수를 사람들이 편하게 사용할 수 있는 10진수의 형태로 창안한것이 바로 BCD코드 특징을 살펴보면 십진수의 각 자리수에 대응되는 4개의 비트를 사용하여 표현 각 4개의 비트의 범위는 0000 ~ 1001 1010 ~ 1111은 사용되지 않음 2진화 10진 코드라고 부릅니다. 말 그대로 10진수를 이진코드로 표기한 것입니다. 6비트로 한 문자를 표현합니다. 영문 소문자를 표현하지 못합니다. 맨 앞 1비트를 Parity Bit로 추가하여 7비트로 사용 Parity Bit(1) + Zone Bits(2) + Digit Bits(4)로 구성 Digit Bits는 각 비트가 8, 4, 2, 1의 값을 의미합니다. 8421 코드라고도 부릅니다. EBCDIC 코드(Extended BCD Interchange Code) BCD코드를 확장한 코드입니다. 확장 2진화 10진 코드라 부릅니다. 8비트로 256가지 문자를 표현할 수 있습니다. 맨 앞의 1비트를 Parity Bit로 추가하여 9비트로 사용 Parity Bit(1) + Zone Bits(4) + Digit Bits(4)로 구성 Excess-3 코드 BCD코드에 3을 더하는 코드입니다. 모든 비트가 동시에 0일 때가 없습니다. 6진수로 BCD 코드를 표현한 후에 3을 더한 것이 Excess-3코드입니다. 자기 보수 코드입니다. 자기 보수 코드 1->0, 0->1로 바꾸었을 때 10진수의 9의 보수를 얻을 수 있는 코드를 말합니다. 10진수에서 9의 보수는 자신과 더해서 9 혹은 99, 999, ... 가 나오는 수를 말합니다. 예) 10진...