6. 하드웨어 ARM 아키텍처 메모리 ODROID-X2 순천향대학교 컴퓨터공학과 이 상 정 1 컴퓨터 구조 복습 - MIPS ISA의 정적 다중 이슈 Instruction types Pipe stages ALU or branch IF ID EX MEM WB Load or store IF ID EX MEM WB ALU or branch IF ID EX MEM WB Load or store IF ID EX MEM WB ALU or branch IF ID EX MEM WB Load or store IF ID EX MEM WB ALU or branch IF ID EX MEM WB Load or store IF ID EX MEM WB 순천향대학교 컴퓨터공학과 2
컴퓨터 구조 복습 - 동적 다중 이슈 프로세서 수퍼스칼라 (Superscalar) 프로세서가 클럭 당 1개 이상의 명령어를 실행할 수 있는 진보된 파 이프라이닝 기법 간단한 수퍼스칼라 순서대로 이슈(In Order Issue) 컴파일러 스케쥴링 대부분의 수퍼스칼라 동적 파이프라인 스케쥴링 지연(stall)을 피하기 위해 명령어 실행의 순서를 재배치하는 하드웨어 지원 최근의 수퍼 스칼라 비순서 이슈 (Out of Order Issue) 순천향대학교 컴퓨터공학과 3 컴퓨터 구조 복습 - 동적 파이프라인 스케쥴링 CPU가 지연을 피하기 위해 명령어를 원래 프로그램의 순서 를 벗어나서 비순서 실행 (out of order execution) 그러나 실행 결과의 레지스터에는 원래 프로그램 순서대로 저장 (commit) 예 lw $t0, 20($s2) addu $t1, $t0, $t2 sub $s4, $s4, $t3 slti $t5, $s4, 20 addu 가 lw의 결과를 기다리는 동안 sub 의 실행을 시작 순천향대학교 컴퓨터공학과 4
컴퓨터 구조 복습 - 4-웨이 집합연관 캐쉬 구현 순천향대학교 컴퓨터공학과 5 컴퓨터 구조 복습 -캐쉬 일관성 유지 프로토콜 (cache coherence protocol) 멀티프로세서에서 캐쉬 일관성을 보장을 위해 다음 동작 수 행 지역 캐쉬로 이동(migration) 공유 메모리의 대역폭을 감소 읽기-공유 데이터의 복사(replication) 공유- 데이터 접근 시 대기시간과 읽기 경쟁을 감소 스누핑 프로토콜 (Snooping protocols) 각 캐쉬들이 버스의 읽기/쓰기를 감시 자기 캐쉬에 버스에 요청된 블록의 복사본이 유무 여부를 확인 디렉토리-기반 프로토콜 (Directory-based protocols) 캐쉬와 메모리가 블록들의 공유 상태들을 디렉토리에 기록 순천향대학교 컴퓨터공학과 6
컴퓨터 구조 복습 - SIMD 벡터 데이터들 연산 E.g., MMX and SSE instructions in x86 128 비트레지스터들상에서여러데이터요소들 모든 프로세서들은 같은 시간에 같은 명령을 수행 각 프로세서들은 다른 데이터 주소 등을 가지고 있음 동기화가 단순 간소화된 명령어 제어 하드웨어 높은 데이터 수준 병렬성(data-level parallelism)을 갖는 응용에 효율적 루프 내의 배열 처리 순천향대학교 컴퓨터공학과 7 ARM 아키텍처 순천향대학교 컴퓨터공학과 이 상 정 8
ARM 소개 ARM 프로세서 ARM Ltd. (http://www.arm.com/) 프로세서 코어 설계회사 ARM 코어 설계를 전세계 파트너에게 판매 ARM : Advanced RISC Machine 특징 32-비트 RISC 프로세서 작은 메모리, 저가격, 저전력 임베디드 프로세서 시장의 선두주자 이동 단말기(휴대폰, 스마트폰 등) 시장에서 채택 순천향대학교 컴퓨터공학과 이 상 정 9 ARM 아키텍처 변천 순천향대학교 컴퓨터공학과 이 상 정 10
구 ARM 프로세서 모델 명명법 T D M I E J Thumb 16 비트 지원 JTAG 디버깅 지원 고속 곱셈 기능 지원 내장형 ICE 매크로셀 DSP 보조프로세서 JAVA Jazelle(Java 하드웨어 가속기) F S VFP(Virtual Floating Point) 지원 합성 버전 순천향대학교 컴퓨터공학과 이 상 정 11 Cortex 프로세서 시리즈 Cortex-A 시리즈 고성능 운영체제 및 사용자 응용을 위한 어플리케이션 프로세서 Coretxe-A7, Cortex-A8, Cortex-A9, Coretx-A15 멀티코아 지원 (MPCore) Cortex-R 시리즈 실시간 시스템을 위한 임베디드 프로세서 Cortex-M 시리즈 저비용 응용들에 최적화된 임베디드 프로세서 Cortex-M3, Cortex-M4 순천향대학교 컴퓨터공학과 이 상 정 12
Cortex-A9 프로세서 (1) ARMv7 ISA(Instruction Set Architecture) 구현 2-이슈 수퍼스칼라 비순차 이슈(out-of-order issue) 8 11 파이프라인 스테이지 32KB 4-way associative L1 I/D 캐시 NEON 미디어 프로세싱 엔진(media processing engine) 범용 128-비트 SIMD(Single Instruction Multiple Data) 엔진 미디어 및 신호처리 가속화 순천향대학교 컴퓨터공학과 이 상 정 13 Cortex-A9 프로세서 (2) 순천향대학교 컴퓨터공학과 이 상 정 14
Cortex-A9 MPCore 순천향대학교 컴퓨터공학과 이 상 정 15 ARM 레지스터와 동작모드 레지스터 15개의 범용 32-비트 레지스터 (r0 - r14) 프로그램 카운터(r15) 상태 레지스터 (CPSR)들을 사용 동작 모드 SVC(Supervisor): 리셋과 소프트웨어 인터럽트 처리 FIQ (Fast Interrupt Request): 높은(fast) 우선순위 인터럽트 처리 IRQ(Interrupt Request): 낮은(normal) 우선순위 인터럽트 처리 ABT(Abort): 메모리 접근 위반 처리 UND(Undefined): 정의되지 않은 명령 처리 SYSTEM: 사용자모드와 같은 레지스터를 사용하는 privileged mode USER: 사용자 모드 순천향대학교 컴퓨터공학과 이 상 정 16
ARM 레지스터 구성 User FIQ IRQ SVC Undef Abort r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 (sp) r14 (lr) r15 (pc) User mode r0-r7, r15, and cpsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) User mode r0-r12, r15, and cpsr r13 (sp) r14 (lr) User mode r0-r12, r15, and cpsr r13 (sp) r14 (lr) User mode r0-r12, r15, and cpsr r13 (sp) r14 (lr) User mode r0-r12, r15, and cpsr r13 (sp) r14 (lr) cpsr spsr spsr spsr spsr spsr Note: System mode uses the User mode register set ARM 산술 어셈블리 명령어 예 산술 명령 2진 덧셈, 뺄셈 오퍼랜드의 크기는 32비트 ADD r1, r2, r3 ; r1 = r2+r3 -- ADD ADC r1, r2, r3 ; r1 = r2+r3+c -- ADD w/ carry SUB r1, r2, r3 ; r1 = r2-r3 -- SUB SBC r1, r2, r3 ; r1 = r2-r3+c-1 -- SUB w/ carry RSB r1, r2, r3 ; r1 = r3-r2 -- reverse SUB RSC r1, r2, r3 ; r1 = r3-r2+c-1 r2 -- rev. SUB w/carry MUL r1, r2, r3 ; r1 = r3 r2 -- 32bit multiply 순천향대학교 컴퓨터공학과 이 상 정 18
메모리 순천향대학교 컴퓨터공학과 이 상 정 19 메모리 분류 휘발성 메모리 (volatile memory) 전원이 켜져 있을 때만 데이터가 유지 SRAM (Static Random Access Memory) 전원이공급되는동안래치에저장된데이터가계속유지 DRAM (Dynamic Random Access Memory) 시간이 지나면 전하가 방전되므로 데이터 유지를 위해 재충전(refresh)가 필요 비휘발성 메모리 (non-volatile memory) 전원이 꺼져 있어도 데이터가 유지 ROM (Read Only Memory) 플래시메모리(flash memory) RAM 처럼 읽고 쓰기가 용이하면서 ROM 처럼 비휘발성임 순천향대학교 컴퓨터공학과 이 상 정 20
메모리 종류 IC 메모리의 종류 전원이 on 일 때만, 데이터가 유지됨 순천향대학교 컴퓨터공학과 이 상 정 21 DRAM 종류 FPM DRAM (Fast Page Mode DRAM) 초창기 DRAM, FPM램은 60~120ns의 접근속도 EDO DRAM (Extended Data Output DRAM) 메모리의 특정 주소를 호출할 때 그 근처에 있는 주소까지 함께 읽어 순차적 읽기 속도를 개선 FPM RAM보다 40 % 정도 개선 SDRAM (Synchronous DRAM) 시스템 클럭의 속도에 동기해서 (맞추어서) 메모리의 데이터를 읽고 쓸 수 있 게만든DRAM RDRAM (Rambus DRAM) 미국의 램버스사가 개발한 메모리 "Rambus 채널"로 접속된 DRAM DDR SDRAM (Double Data Rate Synchronous DRAM) 시스템 클럭의 상승, 하강 에지 모두에서 출력 한 번에 두 개의 정보를 주고 받을 수 있게 함으로써 기존 메모리 속도를 배로 늘리도록 설계 순천향대학교 컴퓨터공학과 이 상 정 22
ROM 비휘발성 메모리 종류 Mask ROM (Read Only Memory) 제조회사가 고객이 원하는 데이터를 공장에서 Mask를 만들어서 ROM을 제작 PROM (programmable ROM) 각 cell이 FUSE로 제작되어 사용자가 한번 프로그래밍 EPROM (erasable programmable ROM) 자외선으로 프로그램 지우고, 재 프로그래밍 가능 EEPROM (electrically erasable programmable ROM) 자외선이 아닌 전기적인 신호로 프로그램 지움 순천향대학교 컴퓨터공학과 이 상 정 23 플래시 메모리 RAM 처럼 읽고 쓰기가 용이하면서 ROM 처럼 비휘발성으로 NOR, NAND 플래시가 있음 블록 내에서 특정 단위로 읽고 쓸 수 있지만, 블록 단위로 지워야 함 또한 덮어 쓸 수 없으므로, 모든 블록을 지우기 전까지는 해당 자료를 변경할 수 없음 플래시 메모리 특성상 10,000에서 1,000,000까지 지울 수 있음 NOR 플래시 임의 접근 방식으로 바이트 또는 워드 단위로 읽기/쓰기 동작이 가능 하지만 덮어 쓰기와 지우기 동작은 임의로 접근할 수 없음 용량이 작은 대신 속도가 빠르고, 프로그램 실행 가능 NAND 플래시 페이지 단위로 읽기/쓰기 동작이 가능하지만 해당 페이지를 덮어 쓰 거나 지우려면 모든 블록을 지워야 함 용량이 큰 대신 속도가 느리고, RAM에 복사하여 사용 순천향대학교 컴퓨터공학과 이 상 정 24
ODROID-X2 순천향대학교 컴퓨터공학과 이 상 정 25 ODROD-X2 소개 ODROID Open + Android ODROID X2 개요 삼성 Exynos4412-prime AP(Application Processor) 6 x High speed USB2.0 Host port 10/100Mbps Ethernet with RJ-45 LAN Jack 순천향대학교 컴퓨터공학과 이 상 정 26
Exynos4412-prime AP 개요 스마트폰 모바일 통신 및 응용을 위해 최적화된 성능을 제공 하는 모바일 AP(Application Processor) 삼성 Galaxy-Note2 스마트폰에 사용 AP 주요 모듈 프로세서 1.7GHz Quad core ARM Cortex-A9 MPCore 2GB LPDDR2(low power DDR2) RAM 멀티미디어 지원 I/O 인터페이스 시스템 주변장치(system peripheral) http://www.samsung.com/global/business/semiconductor/minisi te/exynos/ / 순천향대학교 컴퓨터공학과 이 상 정 27 Exynos4412-prime AP: 블록 다이어그램 순천향대학교 컴퓨터공학과 이 상 정 28
Exynos4412-prime AP: 프로세서 플랫폼 (1) ARM Cortex-A9 MPCore ARMv7 ISA(Instruction Set Architecture) 구현 2-이슈 수퍼스칼라 비순차 이슈(out-of-order issue) 8 11 파이프라인 스테이지 32KB 4-way associative L1 I/D 캐시 NEON 미디어 프로세싱 엔진(media processing engine) 범용 128-비트 SIMD(Single Instruction Multiple Data) 엔진 미디어 및 신호처리 가속화 http://www.arm.com/products/processors/technologies/neon.php http://www.arm.com/products/processors/cortex-a/cortex- / t / / t / t a9.php 순천향대학교 컴퓨터공학과 이 상 정 29 Exynos4412-prime AP: 프로세서 플랫폼 (2) 메모리 64KB irom, 256KB iram 2GB LPDDR2(low power DDR2) RAM DMC (Dynamic Memory Controller) PoP(package-on-package) 1MBL2캐시 VFPv3 ARM Floating Point architecture t 부동소수점 연산 하드웨어 지원 http://www.arm.com/products/processors/technologies/vector com/products/processors/technologies/vector- floating-point.php 순천향대학교 컴퓨터공학과 이 상 정 30
Exynos4412-prime AP: 멀티미디어 ARM Mali-400 MP 440MHz Quad-core GPU 2D, 3D 그래픽 가속기(accelerator) http://www.arm.com/products/multimedia/mali-graphicshardware/mali-400-mp.php 2D 그래픽 엔진 MFC (Multi Format Codec) MPEG-2/4, H.263, H.264 인코딩/디코딩 1080p@30fps (Full HD) JPEG 코덱 JPEG 인코딩/디코딩 순천향대학교 컴퓨터공학과 이 상 정 31 Exynos4412-prime AP: I/O 인터페이스 (1) USB 2.0 USB 호스트/디바이스 (마스터/슬레이브) OTG (On The Go) 컨트롤러 HSIC(High Speed Interconnect) USB 2.0 추가 사양 ICC(Inter-Chip Connectivity) 기술 채택 고속, 저전력, 실리콘 면적 최소화 emmc (Embedded MultiMedia Card) 저장용 메모리 반도체 SPI (Serial Peripheral Interface) UART (Universal Asynchronous Receiver/Transmitter) HDMI (High-Definition Multimedia Interface) JTAG (Joint Test Action Group) 순천향대학교 컴퓨터공학과 이 상 정 32
Exynos4412-prime AP: I/O 인터페이스 (2) I2C (Inter-IntegratedIntegrated Circuit) 버스 인터페이스 필립스(NXP)에서 개발한 저속 소자간 통신 버스 인터페이스 PMIC (Power Management IC), 카메라 제어, 각종 센서, 진동 모터 등이 사용 I2S (Integrated Interchip Sound) 디지털 오디오 장치의 지렬 버스 표준 통신 인터페이스 사운드 입출력(이어폰, 스피커, 마이크)를 담당하는 오디오 코덱 IC 연결 인터페이스 SDIO (Secure Digital Input/Output) 인터페이스 SDA 협회에서 만든인터페이스방식으로 주로 SD/SDHC 메모리카드 를 연결하기 위해 사용 GPIO (General Purpose Input/Output) 순천향대학교 컴퓨터공학과 이 상 정 33 Exynos4412-prime AP: I/O 인터페이스 (3) MIPI (Mobile Industry Processor Interface) SLIMbus (Serial Low-power Inter-chip Media Bus) DSI (Display Serial Interface) CSI (Camera Serial Interface) 순천향대학교 컴퓨터공학과 이 상 정 34
Exynos4412-prime AP: 시스템 주변장치 EBI (External Bus Interface) PLL/OSC (Phase Locked Loop/Oscillator) 시스템 클럭 생성 DMA (Direct Memory Access) 타이머(Timer) ADC (Analog-to-Digital Conversion) PWM (Pulse Width Modulation) 순천향대학교 컴퓨터공학과 이 상 정 35 ODROID-X2 블록 다이어그램 순천향대학교 컴퓨터공학과 이 상 정 36
ODROID-X2 보드 순천향대학교 컴퓨터공학과 이 상 정 37 ODROID-X2 메모리 구성 irom (Internal ROM) 64 KB ROM 안전한 부팅(secure booting) 용도 iram (Internal RAM) 256 KB SRAM 보안 기능 (secure function) RAM 2GB LPDDR2(low power DDR2) RAM Dynamic Memory Controller 순천향대학교 컴퓨터공학과 이 상 정 38
메모리 맵 순천향대학교 컴퓨터공학과 이 상 정 39 과제 앞에서 소개된 ODROD-X2 보드의 내용 중에 소개 또는 소개되지 않는 내용(프로세서, 메모리, 인터페이 스 등) 하나를 임의로 선택하여 (소개된 내용보다) 상세하게 기술하라. 다음의 최신 오드로이드 보드 중 하나를 조사하고, ODROD- X2 보드외 비교하여라. ODROID-U3 ODROID-XU3 삼성의 최신 Exynos 프로세서인 다음 프로세서들 중 하나를 조사하고, Exynos4412와 비교 기술하라. Exynos 7 Octa Exynos 5 Octa - Exynos 5430 프로세서 순천향대학교 컴퓨터공학과 이 상 정 40