YN_FUNROCK
전체 글
976

파이프라인(Pipeline)

파이프라인(Pipeline)프로세서에서 명령어를 실행하기 위해서는 크게 3단계의 과정을 거친다.1단계: 페치(fetch)단계에서는 명령어를 읽어 옵니다.2단계: 디코드(decode) 단계에서는 읽어 온 명령어를 분석합니다.3단계: 실행(execute) 단계에서는 분석한 명령어를 실행합니다.하나의 명령어를 실행하기 위해서는 이러한 3단계, 혹은 3 클럭이 필요합니다만, 아래의 그림처럼 파이프라인 형태로 3가지 작업이 병행되어 실행이 되면 결국 1개의 명령어가 1클럭에 실행이 되는 것과 같은 효과가 있다. 실행속도를 향상시키는 한 가지 방법이다. ARM7의 명령어 중 LDR/STR와 같은 명령어는 데이터를 읽거나 쓰는 과정이 있으므로, 3단 파이프라인이 동작이 지연될 수 있다. RISC에서는 한 명령어를 실..

2016.11.23

CISC vs RISC

CISC(Complex Instruction Set Computer)이것은 명령어 형태가 말 그대로 복잡하다는 것을 의미한다.특정한 기능을 소프트웨어가 아닌 하드웨어적으로 구현함으로서 처리속도를 높이려는 것이 목적이 었다. 따라서 기능이 추가됨에 따라 하드웨어 구현이 되는 명령어들도 추가되어 복잡하게 되었다.명령어의 복잡성은 IC를 설계하는 회로의 복잡성과 비례하므로, 발열과 더불어 속도증가에 제한을 가지게 되었다. RISC(Reduced Instruction Set Computer)많은 명령어 중에서 반복적으로 많은 쓰이는 명령어는 하드웨어적으로 구현하고, 다른 명령어들은 하드웨어적으로 구현된 명령어들을 여러 개 사용해서 소프트웨어적으로 구현하고자 만든 형태이다.명령어의 수를 줄이므로, 하드웨어가 간단..

2016.11.23

ARM 프로세서의 장점

ARM 프로세서의 장점 고성능(Very High Performance) 기존 임베디드 시장에서는 주로 8/16비트의 프로세서가 주류를 이루고 있다.하지만 시장에서 요구되는 응용분야가 점차 음성, 영상, 통신 등의 고성능 처리가 필요하게 됨에 따라 32비트 고성능 프로세서가 등장하게 되었다.기존에 존재하던 32비트 프로세서는 성능은 우수한 반면에 가격, 시스템의 크기, 전력소모 면에서는 8/16비트 프로세서에 비해 불리한 면이 많아 ARM 프로세서는 이러한 단점을 최소화하면서도 고성능의 처리능력을 가지도록 설계되어, 많은 분야에서 그 수요가 급증하고 있다. 저전력(Very Low Power Consumption) 개인용 컴퓨터의 분야에서는 전력소모보다는 처리속도가 더 우선시 되었다. 처리속도를 증가시키기 ..

2016.11.23

System On a Chip

SoC(System On a Chip) 디지털용 반도체 소자는 집적도 면에서 계속 발전하여 왔습니다.집적도에 따른 용어는 아래와 같이 우측으로 갈수록 높은 집적도를 표현 할 수 있다.SSI=>MSI=>LSI=>VLSI 그러나 반도체 기술의 빠른 발전에 따라 위의 용어로 표현하기에는 한계에 온 것 같습니다. 집적도 측면에서 요즘은 "SoC"라는 용어를 쉽게 들면 중요한 반도체 소자 몇 개를 하나로 집적 하는 수준이 아닌, 시스템 (CPU, memory, peripherals) 전체를 하나의 소자로 집적하고자 하는 것 이다. 이것이 의미하는 바는 단순히 집적도가 높다는 것만은 아닙니다.시스템의 소형화, 저가격,고성능은 부가적으로 얻을 수 있다. 최근에는 반도체 특성상 차이를 보이던, 아날로그 소자 및 통신소..

2016.11.23

Cache Memory, Write Buffer

캐시 메모리 캐시 메모리는 ARM 프로세서 내부에 있는 특수 목적의 메모리로, 가장 최근에 참조되었던 혹은 참조될 가능성이 있는 명령어, 데이터를 저장하는데 사용한다. CPU는 읽고자 하는 데이터가 캐시 메모리에 있는 경우, 외부 메모리를 참조하지 않고 캐시에서 데이터를 읽어 오게 된다.캐시 메모리의 속도는 CPU와 동일하게 빠른 속도로 동작하므로, 속도가 상대적으로 느린 외부 메모리를 참조하는 경우보다 더욱 빠르게 동작하며, 결과적으로 캐시 메모리를 참조하는 경우가 많을수록 명령어, 데이터를 읽는 동작속도는 최고성능을 발휘하게 되는 것이다. 라이트 쓰루(Write Through) CPU가 특정 주소에 데이터를 쓰기 동작하는 경우를 고려해 봅시다. 캐시 메모리 안에 이미 해당 데이터가 존재하는 경우, 라..

2016.11.23

프로세서 (Processor) 종류

마이크로 컨트롤러(Micro-controller) 제한된 특수한 용도로 동작시키기 위해서 마이크로 컨트롤러라고 불리는 작고 비교적 간단한 컴퓨터가 표준 컴퓨터나 다른 디지털 시스템에 사용된다.예를 들면, 어떤 마이크로 컨트롤러는 컴퓨터에 있는 키보드나 모니터에서만 사용된다. 마이크로 컨트롤러는 명령어의 길이도 보통 4-8비트로 짧으며, 레지스터의 수도 적고 명령어 세트도 한정되어 있으며, 상대적으로 표현하면 성능은 낮으나 특정한 목적에 알맞는 성능을 갖고 있다할 수 있다.인텔이 최초로 출시한 것으로, 기존의 시스템은 CPU와 메모리(ROM, RAM 등), 기타 주변장치가 각각 별도로 되어있었으나, 이를 하나로 통합한 것. 전자식 계산기를 개발하는 일본업체에 납품하기 위해 개발되었으나 일반 목적으로 사용하..

2016.11.23

Bus System

Bus System버스 시스템(Bus System) 버스 시스템은 어드레스 버스, 데이터 버스, 제어 신호로 구성됩니다. 해당 주소와 데이터를 버스에 싣고 제어 신호를 가하면, CPU 외부에 있는 소자의 해당 주소에 데이터를 읽거나 쓸 수 있습니다. 버스 시스템의 구성에 따라 시스템의 동작여부와 성능이 결정되므로, 아주 중요한 요소라 할 수 있다. 하버드 아키텍쳐 하버드 아키텍쳐는 명령어와 데이터 영역이 분리되어 있는 형태이다. 즉 명령어를 위한 어드레스, 데이터 버스와 데이터를 위한 어드레스, 데이터 버스가 분리되어 있는 버스 시스템을 사용한다. 명령어와 데이터의 참조를 동시에 수행할 수 있으므로, 성능 면에서 우수하지만 단점은 버스 시스템이 복잡하며, 외부 메모리가 2세트가 있어야 한다는 점이다.AR..

2016.11.23

C언어 문법 공부 8장 [포인터 사용 용도]

7. 포인터 사용 용도지금까지 포인터에 대해 배웠습니다.그런데 이 포인터를 과연 어디에 써먹을수 있을까요? 저번 강좌에서 일반 변수를 함수 호출시 인수로 전해주면단지 변수에 들어있는 값을 복사해서 전해주는 Passing by value라는 호출 방법을 쓴다는 것을 배웠습니다. 그리고 배열의 경우 그 주소를 전해 주는 Passing by reference라는 방법을 쓴다는 것도 알았죠.그럼 일반 변수를 Passing by reference로 전해 줄수는 없을까요? 포인터를 이용하면 이것이 가능합니다. 우선 방법을 알아보기 전에 예제 하나를 보죠. /* 파일 이름 : C9-2.C프로그램 내용 : 포인터 예제. */ #include void func(int data){data=10;} void main(){ ..

2016.11.20