hardware

Layer7 하드웨어 3, 4차시 과제

leesu0605 2022. 6. 20. 16:35

목차


1. Soc
2. 하드웨어 인터페이스
3. 펌웨어
4. 논리회로
5. 펌웨어 획득
6. 펌웨어 이미지 분석


Soc(단일 칩 체제)


Soc(단일 칩 체제)는 완전한 제품과 그 시스템이 한 개의 칩에 들어 있는 것을 말한다.
즉, 하나의 칩 안에서 여러 직접 회로(여러 독립된 전자회로를 모아 하나의 칩으로 만든 것)의 역할을 구현하는 체제이다.

Soc은 주로 모바일 기기 등의 저전력 소비 디바이스에 효율적으로 사용되며, 구성 요소로는 다음 5가지가 있다.

1. 마이크로 컨트롤러, 마이크로 프로세서와 같은 디지털 신호 처리기
2. RAM, ROM과 같은 플래시 메모리 칩셋
3. GPS, 진동자와 같은 위치 및 위성 시스템
4. CPU, GPU와 같은 연산 및 시뮬레이션 구현을 위한 칩셋
5. 모뎀과 같은 디지털 신호와 아날로그 신호 변환기, 전력 관리 소켓, SMS 시스템 칩셋

Soc 예제

예를 들어, 스마트폰에 탑재된 단일 칩 시스템은

1. CPU
2. GPU
3. NPU(머신러닝 및 인공지능 관련 연산)
4. 모뎀으로 신호 변환, 와이파이, 블루투스 등의 통신
5. DSP로 디코딩, 인코딩

이런 식으로 대표적인 5가지 직접회로가 모아져 있다.


장점


1. 회로가 서로 가까이 있어 복잡한 방정식을 더 빠르게 연산할 수 있다.
2. 단위면적당 소자(고체 내 전자의 전도를 이용한 전자 부품 ex-트랜지스터)를 더 많이 설치할 수 있다.
3. 생산 비용이 줄어든다.


이러한 장점이 있으나, 복잡한 방정식의 연산에 따른 발열 문제가 있어 여러가지 해결법들이 나오고 있다.


하드웨어 인터페이스(hardware interface)


· 인터페이스 : 서로 다른 두 시스템, 장치, 소프트웨어 등을 서로 이어 주는 부분, 또는 그런 접속 장치. 즉, 사물의 경계과 되는 부분에서의 통신 및 접속이 가능하도록 하는 매개체

인터페이스에 대한 정의로 하드웨어 인터페이스가 뭔지 예측해보면,
서로 다른 기기들을 연결해 상호 작용할 수 있도록 도와주는 장치나 방법이 될 것이다.

예를 들어, USB는 Universal Serial Bus의 약자로 컴퓨터와 주변 장치의 연결 방법을 통일시킨 하드웨어 인터페이스이다.

이외에도 하드웨어 인터페이스에는 입출력 버스, 기억 장치, 프로토콜, 플러그 등이 있는데, 모두 서로 다른 장치들의 상호 작용을 위해 쓰는 것들이다.


펌웨어(firmware)


펌웨어란, 하드웨어의 기본적인 제어 및 구동을 맡는 소프트웨어이다.

쉽게 설명하면, 펌웨어는 탑재된 기기의 운영체제를 담고 있거나 운영체제가 권한을 넘겨받기 전까지 컴퓨터를 제어하는 역할을 하기 때문에 매우 중요한 구성 요소이다.
따라서 펌웨어가 없으면 컴퓨터가 작동을 하지 못한다.

이렇게 중요한 역할을 하는 펌웨어에는 다음의 4가지 내용이 들어있다.

1. 부트로더
2. 펌웨어 다운로드/업로드 - 주로 앞에서 배운 Soc의 롬 플래시 메모리에 들어감
3. BIOS(기본 입출력 장치), UEFI(BIOS의 개선판) - 주로 Soc에 부트로더 다음으로 넣음
4. 운영체제 - 보조 기억 장치에 들어감. 커널, 드라이버, 애플리케이션 등 제조사가 새로 고친 프로그램들

펌웨어를 개발하는 방법은 롬라이터를 통해 EEPROM에 바이너리를 주입해 구동하며, 바이너리는 C언어, 어셈블리어 등의 저수준 언어로 개발한다.(EEPROM이 궁금하다면 '이전 블로그-하드웨어 1차시 글'을 참고하자)


논리 회로


논리 회로는 말그대로 불 대수와 카르노 맵을 이용해 1개 이상의 논리 입력을 일정한 논리 연산에 의해 1개 이상의 논리 출력을 얻는 회로이다.

대표적인 논리 기호들로는 NOR, OR, AND, NOT, XOR, NXOR이 있는데, 하나씩 살펴보자.

NOR 첫 번째 입력과 두 번째 입력이 모두 0이면 참 반환, 하나라도 1이 포함돼있으면 거짓 반환
OR 첫 번째 입력과 두 번째 입력에 1이 하나라도 포함돼있으면 참 반환, 아니면 거짓 반환
XOR 첫 번째 입력과 두 번째 입력이 서로 다르면 참 반환, 아니면 거짓 반환
NXOR 첫 번째 입력과 두 번째 입력이 서로 같으면 참 반환, 아니면 거짓 반환
NOT 입력이 참이면 거짓 반환, 거짓이면 참 반환
AND 첫 번째 입력과 두 번째 입력이 모두 1이면 참 반환, 하나라도 0이 포함돼있으면 0 반환
NAND 첫 번째 입력과 두 번째 입력 중에 하나라도 0이 포함돼있으면 참 반환, 모두 1이면 거짓 반환
BUF 입력을 그대로 반환 -> 신호 전달을 지연시켜 연산 처리속도를 맞춤

이를 적절히 조합해 실제로 어떤 기능을 수행하는 회로를 논리 회로라고 한다.

대표적인 논리 회로인 반가산기

A : 첫 번째 입력
B : 두 번째 입력
S : 덧셈 결과를 2로 나눈 값
C : 덧셈 결과의 올림수


펌웨어 획득


펌웨어를 획득하는 방법들 중에는 다음의 방법들이 있다.
참고로 펌웨어를 획득하면 하드웨어를 제어할 수 있기 때문에 중요하다.

1. 제조사 사이트에서 다운받기
2. ISP로 플래쉬 메모리에서 추출하기

...


펌웨어 이미지 분석


펌웨어를 분석하기 위한 툴이 존재한다.

ex) binwalk, fmk

이를 통해 파일의 구성을 분석할 수 있다.