지식 정리

2018. 1. 7. 22:01

오랜만에 친구와 만나 이것저것 이야기하는데, 임베디드에 대해 이야기하다가(그녀석도 임베디드로 가려하는 친구이다..) 몇몇 의문점이 생겨 대화하고, 추가적으로 찾아보고 그 내용을 여기에 정리합니다.

 

 

 

DSP

1. 디지털 신호 처리 방법들을 의미한다(장: 빠르고 오류가 적다. /단: 외부 자극, 방해에 약하다)

2. Digital Signal Processor

  군사용으로 개발되었던 것이 이후 신호처리를 위한 특수 목적의 전용 프로세서로 발전한 것입니다.
  신호처리를 위한 연산능력이 뛰어나며, 개인용 컴퓨터용 프로세서, 내장형 프로세서보다 훨씬 앞서
  GHz 대역의 성능의 제품이 출시되었습니다. 현재는 멀티미디어, 통신 등의 분야에 많이 쓰이고 있습
  니다. ARM 프로세서에서는 DSP의 대표적인 특징인 MAC(Multiply and Accumulate) 명령어를
  지원합니다.

 

 

 

 

버스시스템: 버스 시스템은 어드레스 버스, 데이터 버스, 제어 신호로 구성된다. 해당 주소와 데이터를
버스에 싣고 제어 신호를 가하면, CPU 외부에 있는 소자(주변장치)의 해당 주소에 데이터를 읽거나
쓸 수 있다. 버스 시스템의 구성은 다음과 같다.

 

1. 하버드 아키텍쳐

명령어를 위한 버스라인과 데이터를 위한 버스라인이 분리되어 있는형태.

장점: 명령어와 데이터의 참조를 동시에 수행할 수 있다.(속도향상)

단점: 버스 시스템이 복잡하며, 외부 메모리가 2세트가 있어야 한다.

=> ARM9은 고성능을 얻기 위하여 하버드 아키텍쳐를 채택

 

2. 폰 노이만 아키텍쳐

명령어와 데이터를 위한 어드레스, 데이터 버스가 하나인 형태.
장점: HW설계의 단순화

단점: 명령어와 데이터에 동시접근이 불가능하며 병목현상이 발생할 수 있다.

=> 개인용 컴퓨터와 ARM7은 폰노이만 아키텍쳐를 채택

 

참조: http://woodforest.tistory.com/164

 

 

 

 

CISC와 RISC

1. CISC(Complex Instruction Set Computer)
이것은 명령어 형태가 말 그대로 복잡하다는 것을 의미합니다.
특정한 기능을 소프트웨어가 아닌 하드웨어적으로 구현함으로서 처리속도를 높이려는 것이 목적이었습
니다. 따라서 기능이 추가됨에 따라 하드웨어 구현이 되는 명령어들도 추가되어 복잡하게 되었습니다.
명령어의 복잡성은 IC를 설계하는 회로의 복잡성과 비례하므로, 발열과 더불어 속도증가에 제한을 가지
게 되었습니다.

 

* 특징

명령어의 포맷이나 길이에 관한 규칙이 없음

MICRO-ROM 방식(명령어 로직의 크기를 줄이고 처리시간이 늘어나는 방식)의 명령어 디코딩

하나 이상의 클럭 주기로 하나의 명령어 실행

 

* 해당 설계방식으로 설계된 cpu

- 인텔 x86, 모토롤라 68xxx, 네셔널 세미컨덕터 32xxx

=>요약: 시스템구현을 하드웨어적으로 구현하여 처리속도를 높히려는 설계방식

 

 

2. RISC(Reduced Instruction Set Computer)
많은 명령어 중에서 반복적으로 많은 쓰이는 명령어는 하드웨어적으로 구현하고, 다른 명령어들은 하드
웨어적으로 구현된 명령어들을 여러 개 사용해서 소프트웨어적으로 구현하고자 만든
형태입니다.
명령어의 수를 줄이므로, 하드웨어가 간단하게 되고 이에 따라 동작속도가 증가되었습니다.
소프트웨어적으로 구현된 명령어에 의한 처리속도의 저하는 동작속도에 의해 보완되고, 전체적으로(확률
적으로) 보았을 경우, 처리속도의 향상을 꾀할 수 있다는 것이 목적이었습니다.
명령어 수가 적어진 것과 아울러 명령어의 길이를 동일하게 할 수 있으므로, 파이프라인의
구현이 용이하게 되었습니다.

 

* 특징

고정길이 명령어

랜덤 로직 방식(단순한 명령어이지만 기능 하나를 처리하기 위해서는 여러개의 명령어 필요)의 명령어 디코딩
단일 클럭 프로세싱

파이프라인 프로세싱

 

* 해당 설계방식으로 설계된 cpu

- 모토롤라 PowerPC, MIPS, SPARC, ARM, AVR, 마이크로 칩 PIC

 

* 요약

CISC

RISC

하드웨어가 강조됨

소프트웨어가 강조됨

여러 클럭의 복합 명령어를 포함

오직 단일 클럭의 축약명령어만 포함

Memory to Memory : “LOAD”, “STORE” 가 각 명령들 안에서 수행됨.

Register to Register : “LOAD”, “STORE” 를 독립적인 명령으로 사용함

작은 코드 크기, 단위시간동안 높은 사이클

단위시간동안 낮은 사이클수, 큰 코드 크기

축약명령어를 저장을 위해 트랜지스터가 사용됨.

메모리 레지스터에 보다 많은 트랜지스터가 사용됨.

 

 => 상대적으로 CISC는 고사양이며, CISC는 저사양이나 전력효율성을 향상시켜 임베디드에서 많이 사용된다.

 

참조:

http://jsy6036.tistory.com/entry/폰-노이만-구조와-하버드-구조

http://egloos.zum.com/depiness/v/911132

 

 

 

 

HW언어와 프로그래밍 언어

1. HW언어

cpu가 동작하는 logic를 기술하기 위한 언어

종류: VHDL, verilog(요즘 방식이라고한다)

 

2. 프로그래밍 언어

시스템을 구동시키기 위한 sw를 작성하기 위한 언어(기계가 일정한 기능을 하도록 cpu가 제어하는테, 이 제어를 하기 위한 sw를 작성하기 위한 언어)

종류: high level(c, c++, java등), low level(asm)

 

* fpga

HW언어를 사용하여 cpu혹은 core를 설계하는 것을 의미한다.

core의 구성: 레지스터, ALU, CU, BUS로 구성 

cpu의 구성: core, co-processer, MMU, cache등으로 구성

 

* HW설계

① SOC에서 지원하는 여러가지 주변장치 중에서, 사용하고자 하는 특정 HW만 선정

② FPGA설계로 새로운 SOC(선정한 HW가 반영된)가 원활히 동작할 수 있도록 설계

③ 완성된 SOC를 양산화하여 asic으로 완성.

 

asic: 반도체 업체가 사용자의 주문에 맞춰 설계, 제작해 주는 주문형 반도체(즉 양산을 하기 위한 완성품)

=> 단순화, 저전력의 특징이 있다(SOC의 비해)

 

 

'Study > 기타' 카테고리의 다른 글

ROS2  (0) 2023.08.07

+ Recent posts