본문 바로가기

컴퓨터 공학(임시)

임베디드 시스템의 프로세서 이해

목표

1.    마이크로 프로세서의 스펙을 판단하기 위해 우선 하나의 마이크로 프로세서의 스펙을 reference로 잡는다.

2.    Reference로 삼기 위해 데이터시트에서 사용하는 용어들을 정리한다.

3.    스펙의 주요 요소들을 기준으로 다른 CPU가 어떠한 면에서 더 우수한지/떨어지는지 이해할 수 있도록 한다.

 

Reference CPU

시리얼 코드: STM32F411

제조사: STM 32

주요 키워드:

-      Arm Cortex – M4 32b MCU+FPU

-      125DMIPS

-      512KB Flash

-      128KB RAM

-      USB OTG FS

-      11TIMs

-      1ADC

-      13comm.interfaces

 

ST BAM(Batch Acquisition Mode)은 저전력 모드를 유지하면서 통신 주변장치들과 효율적으로 데이터를 교환할 수 있도록 해준다.

 

 

키워드 분석

1.    Arm Cortex – M4 32b MCU+FPU

Arm사의Cortex라는 프로세서 브랜드의 M4 제품을 의미한다.

1.1.        32b?

레지스터(CPU가 처리하는 데이터의 최소단위)가32 비트라는 의미이다. 

CPU는 연산할 때 메모리에서 데이터를 읽어와야 하는데, 매번 모든 것을 읽어오면 시간과 성능을 너무 많이 소비하기 때문에, 자주 사용하는 데이터는 임시 내부 저장공간인 레지스터에 저장해 두어, 메모리가 아닌 레지스터에서 바로 불러와서 연산을 진행한다. 이때의 내부 저장공간의 크기가32비트라는 의미로써 2^32개의 숫자를 표현할 수 있다라고도 이해할 수 있다.

 

1.2.        MCU?

Micro Controller Unit의 약자이다. MCU를 이야기하기 위해서는를 같이 이야기해야 한다. MPUMicro Processor Unit의 약자로써, MCU와는 controller vs processor의 차이가 있다. MPU, MCU 둘 다 CPU의 한 종류이다.

 

MPU연산을 주목적으로 설계된 CPU로써, 연산을 위한 ALU(Arithmetic & Logic Unit)와,와, 연산할 대상과 명령어 등을 기억장치에서 읽어오기 위한 레지스터, 이들을 제어하기 위한 Control unit으로 구성되어 있다. 연산 대상은 외부 메모리에 저장되어 있고, 이에 접근하기 위한 I/O인터페이스 등은 별도로 필요하다. 라즈베리파이가 MPU에 해당한다.

(*ALU란 산술논리연산 유닛으로서, 정수 데이터들의 산술연산과 논리연산을 진행한다.)

(*일반적으로 사용되는 PC에 들어가는 CPU MPU를 크게 만든 개념이라고 볼 수 있을 것이다.)

 

MCUMPUmicroprocessor(Control Unit, ALU)와 이에 데이터를 주고받기 위한인터페이스, 명령어/데이터 등이 저장되어 있는 메모리를 하나의 IC 칩에 합쳐둔 형태로써, 주 목적으로는 무언가의 장비 등을 제어하는 데에 있다. ATmel사의 ATmega238 MCU에 해당한다.

 

 

1.3.        FPU?

FPU Floating point unit의 약자로써, 부동소수점을 의미한다. 정수만을 계산하는 ALU와는 대비되는 개념으로서,실수를 계산하기 위한 유닛이다.

컴퓨터는 흔히 알려진 바와 같이 0과 1만을 사용하는 2진법으로 동작한다. 이진법으로 이루어진 컴퓨터는 실수를 표기하는 데에 한계가 있다. 부동소수점의 반대 개념은 고정소수점이다. 부동소수점은 비교적 낮은 정확도로 더욱 넓은 범위의 숫자를 표기할 수 있어 실수를 표현하는 데에 일반적으로 쓰이며, 고정 소수점은 더 높은 정확도를 가지나 표현할 수 있는 범위가 상대적으로 적어 실수를 표현하지만 특수한 경우에 주로 쓰인다.

ALU로도 추가적인 코드를 사용하여 부동소수점으로 표기되는 숫자를 계산하는 것처럼 동작시킬 수 있으나, 속도가 느리고 소비전력도 늘어나서 주로 CPU나 프로세서에 부하가 커지기 때문에 실수를 계산할 때에는 FPU가 필요하다.

 

2.    125 DMIPS

MIPS million instructions per seconds의 약어로써, 1초에 100만개의 명령어를 수행한다 라는 의미이다.

DMIPS Dhrystone million instructions per seconds의 약자이다. 드라이스톤 벤치마크 테스트의 결과를 정수화해서 하중한 값으로 비교하는 방법이다.

MIPS는 단순이 초당 처리할 수 있는 코드만을 평가하지만, 처리되는 코드의 복잡성 등의 고차원적인 가치는 평가할 수 없기 때문에 신뢰도가 낮은 평가 기준이다. 따라서 드라이스톤 벤치마크는 특정 시스템에게 특정 작업을 수행시켜서 이에 걸리는 시간을 측정, 이를 정수화 한 수치이기에 프로세서의 성능을 평가하기 위한 더욱 현실적인 기준으로 사용된다.

 

2.1 FLOPS

FLOP = FLoating points OPerations의 줄임말, 부동소수점 연산

FLOPS = FLoating point Operation Per Second, 1초당 처리할 수 있는 부동소수점 연산으로, 하드웨어의 퍼포먼스를 평가하는 척도로 쓰인다. MIPS와 비슷한 개념. 주로 슈퍼컴퓨터나, 딥러닝 모델을 평가할 때 사용된다고 한다.

 

 

3.    512KB Flash

Flash memory의 크기가 512KB라는 의미.

3.1  Flash memory?

전기적으로 데이터를 지우고 다시 기록하는 동작을 할 수 있는 비휘발성 기억장치. 비휘발성이기 때문에 전원(전기)를 꺼도 저장되어 있는 내용이 지워지지 않는다. 다만 휘발성 메모리인 RAM과 비교하면 읽기/쓰기 속도가 많이 느리다.

3.1.1      자세한 Flash memory의 종류로는 NOR Flash Memory NAND Flash memory 등이 있다. 각 세부 플래쉬 메모리에 대해서는 추가로 정리를 할 예정.

 

3.1.2     NOR vs. NAND 비교

3.1.3     MLC, SLC – SD card를 만들 때 NAND flash를 이용해서 하는데, 그 특수한 방법 중 하나.

 

3.2  ROM이란

Read Only Memory의 약자이다. 내용을 작성할 때 전용 기기가 필요하고, 이름에서 알 수 있듯이 ROM에 저장된 데이터를 읽기만 가능하기 때문에 사용법이 다소 복잡할 수 있다. RAM과는 반대되는 개념을 가지는 장치로써 일반적으로 한번 기록된 정보는 전원의 유무와는 상관없이 반영구적으로 기억된다. Flash Memory ROM의 한 종류이다. (비휘발성 메모리이기 때문에)

3.2.1      PROM이란

Programmable Read Only Memory를 말하며, rom이 제작된 후 한 번만 저장한 데이터를 바꿀 수 있다. 영구적으로 보존할 필요가 있는 데이터들을 저장하기 위해 주로 사용되었으며, 대표적으로 펌웨어가 있다. 내부에 퓨즈가 있고 데이터를 기록하면 그 퓨즈가 끊어지게 되어 데이터를 수정하는 것이 불가능하게 된다. 현재로는 주로 사용되지는 않지만, 후대의 ROM이 등장하는 중간다리의 역할인 셈.

3.2.2      EPROM이란

Erasable Programmable Read Only Memory의 약자이다. UV EPROM도 일반적으로 같은 것을 지칭한다. PROM과 동일하게 내용물을 프로그래밍이 가능하며, 이에 강한 자외선을 쬐어주면 저장된 데이터를 지울 수 있다. 다만, 자외선을 쐬어주기 위해 특수한 액정(유리)면을 만들어 주어야 하기 때문에 크기가 커진다. 후대의 EEPROM이 개발되며 거의 사용되지 않는 소자이다.

3.2.3      EEPROM이란

Electrically Erased Programmable Read Only Memory의 약어로써, 전기적으로 데이터를 쓰고 지우는 것이 가능한 비휘발성 메모리이다. 1바이트씩 데이터를 지우기 때문에 속도가 빠르지는 않다. RAM처럼 실시간으로 사용하는 메모리가 아닌, 보관하고자 하는 데이터들을 백업해두기 위해 사용된다. 주로 사용하는 방법으로는 병렬통신과 직렬통신이 있다. 읽고 쓰는 법은 eeprom 모델 별로 다르기 때문에 데이터를 쓰거나 지우거나 읽을 때는 datasheet 확인 필요.

3.3  RAM 이란?

Random Access Memory의 약자로써, 현재 시스템의 프로세서에서 사용중인 데이터 및 프로그램 명령어를 저장하는 데에 사용된다. 랜덤 액세스 메모리는 저장한 데이터를 유지하는데 전원공급이 필수이다. 따라서 전원을 끊으면 저장된 데이터가 사라지기 때문에 휘발성 메모리라고 부른다. 휘발성 메모리에 비해 읽기/쓰기 속도가 빠르며, 전력 소모가 낮다는 장점이 있다.

흔히 컴퓨터에서는 저장장치로 램과 하드디스크가 비교되는데, 읽고자 하는 데이터에 접근하기 위해 물리적인 이동을 필요로 하는 하드디스크와는 달리 RAM은 데이터를 저장하는 cell들의 배열(반도체 회로 데이터를 전기로 저장한다)로 이루어져 있어 어느 cell에 접근하더라도 소요 시간은 동일하여 하드디스크보다 빠르다는 특징이 있다.

 

3.3.1      SRAM이란

Static Random Access Memory의 약자. Flip Flop으로 구성한 메모리이다. 이름의 Static(안정화된) flip flop의 특성에서 유래되었는데, 전류 신호가 오지 않으면 상태가 바뀌지 않는다. 전자적 구조의 자세한 부분은 별도로 분석을 하여 정리하고자 한다.

3.3.2      DRAM 이란

Dynamic Random Access Memory의 약자. 일반적으로 1 트랜지스터 + 1 캐패시터로 구성된다. 전자적 구조의 자세한 부분은 별도로 분석을 하여 정리하고자 한다.

3.3.3      SDRAM이란

Synchronous Dynamic Random Access Memory의 약자. CPU의 타이밍과 스스로 동기화 되도록 설계된 DRAM의 한 종류이다. 자세한 구성 및 기능은 별도로 분석을 하여 정리하고자 한다.

 

3.4  USB OTG FS

3.4.1      USB

Universal Serial Bus의 약어. 통신 버스 규격.

 

3.4.2      OTG

On the go의 약자이다. USB2.0이 나오면서 생긴 기술로 휴대형 장비가 마치 USB 통신의 호스트처럼 취급할 수 있게 하는 구조. 이 경우엔 프로세서가 다른 장비 소자들과 USB로 통신할 때는 호스트가 될 수 있지만, pc 등에 연결되면 device로써 행동할 수 있다.

 

3.4.3      FS

Full speed를 의미한다. HS/FS로 존재하며, HS high speed로써, 매우 빠른 데이터 전송률(최대 480Mbit/s) 모드이며 FS HS보다는 느리게 데이터를 전송한다(최대 12Mbits/s).

 

 

3.5  11 TIMs

TIM 이란 타이머를 말한다. 본 장비에서는 총 11개의 타이머가 구성되어 있고, 각 타이머의 해상도, 타입 등은 아래의 그림과 같다.

3.5.1      Timer

타이머란 CPU의 클럭을 세는 기능. CPU 및 주변회로를 동작하기 위해서는 클럭 신호를 공급해줘야 하는 경우가 다수인데, 사용자가 특정 시퀀스 등을 만들었다면, a-(delay)-b-(delay)-c(delay)-a 와 같이 진행하려면 어느정도 기다릴지를 알 수 있게 하기 위한 시간 정보가 필요한데, 그런 것을 제공해준다.

 

3.6   1 ADC

Analog to digital converter. 아날로그 신호 입력 값을 디지털 신호로 변경하는 기능을 한다. 아날로그 신호는 연속성(continuous)을 가지며, 디지털 신호는 이산성(Discrete)을 가진다. 일반적으로 아날로그를 디지털로 변환할 때는 sampling, quantizing, coding 기법 등을 사용한다.

3.7  13 comm. Interfaces

통신 인터페이스가 13개 존재한다는 것을 의미한다.

SPI/I2S 5, I2C 3, USART 1, SDIO 1, USB OTG FS 1개로 구성되어 있다고 한다.

'컴퓨터 공학(임시)' 카테고리의 다른 글

cpu 관련 추가 정리 예정 항목  (0) 2024.04.26