핵심 프로세서 Core-A 활용확신 지원사업 Core-A 프로세서 지원센터
핵심 프로세서 Core-A 활용확산 지원사업 t Core-A Processor Cache & MMU & Debugger Tool Chain & Implementation Core-A Homepage Core-B BUS 3 5
핵심 프로세서 Core-A 활용확산 지원사업 Debugging System SDK Core-A Processor Cache Controller Cache Controller MMU 32bit Processor core 32bit Processor core DSP FPU Memory Controller Memory Controller User Logic Bridge AMBA IPs AMBA IPs Standard Peripherals Standard Peripherals Embedded Complier/OS Embedded Complier/OS JTAG-Based Emulator JTAG-Based Emulator In-Circuit Debugger In-Circuit Debugger External memory bus High-speed bus Extended system bus Peripheral bus Platform-Based Design Core-A System Processor Core + Fundamental IPs + Debugger + SDK +Verification System + Application Examples Total solution for Embedded System Design
핵심 프로세서 Core-A 활용확산 지원사업 SystemDecription Hardware Components 32- bit Embedded Processor Core (Core-A) On-Chip BUS (Core-B Lite) On-Chip Cache Controller On-Chip MMU On-Chip Debugger Software Components (Cycle-accurate) Instruction Set Simulator Assembler & Linker (ported for Core-A) GCC (ported for Core-A) GDB (ported for Core-A) Verification FPGA-based Core-A Development Platform Fundamental Ips Design Use-cases Programmable Sound Synthesizer JPEG2000 Encoder
핵심 프로세서 Core-A 활용확산 지원사업 Core-A Processor 32-bit RISC Processor 5 Stage Pipeline Structure Fully Synthesizable Key Features Programmable Delay NOP Insertion before execution Programmable Branch Slot Powerful Load/Store Operation LDM / STM 32 Bit Immediate Concatenation MUI Extensible Architecture Application Specific Registers Coprocessor I/F IF ID EX MEM WB
핵심 프로세서 Core-A 활용확산 지원사업 Core-AMIPS32ARM9 # of Visible Registers # of Total Registers1837 Shifted OperandOXO Pre/Post IndexingOXO Conditional Execution*ΔΔO Multiple Load & Store (LDM, STM) OXO DSP FeatureOOO NOP FieldOXX Programmable Delay SlotOXX
핵심 프로세서 Core-A 활용확산 지원사업 16 GPR (general purpose register) 12 general use EPARAM (Exception parameter) EPC (Exception PC) RA (Return Address) PC (program counter) PS (program status) 2 16 ASR (Application Specific Register) CPR (Coprocessor Register)
핵심 프로세서 Core-A 활용확산 지원사업
The high parts ([31:16]) and the low parts ([15:0]) have the same format The high parts : the previous status before the exception The low parts : the current status N (Negative), Z (Zero), C (Carry), V (Overflow) Execution result of the instruction IE : interrupt enable – 0 for disable M (Mode) : shows the current processor mode 1’b0 : User Mode 1’b1 : Supervisor Mode – protected mode for operating system for handling exception/interrupt. ‘PS’ can be updated with MTPS/MFPS instructions
핵심 프로세서 Core-A 활용확산 지원사업 Sub-routine call CALL/LCALL/CALLR/CALLZ/ $RA $PC+4*n $PC $PC+X Return from sub-routine call CALLR Exception Type 0x00Reset 0x04DMMU Page Fault 0x08Undefined Instruction 0x0CSoftware Interrupt 0x10External Interrupt 0x14IMMU Page Fault 0x18Co-Processor Interrupt [general exception handling by the Core-A] EPC PC PS[31:16] PS[15:0] PS.IE 0 (Interrupt Disabled) PS.MODE 2’b01 (Supervisor) PC service_routine_address (not vector address) [reset handling by the Core-A] EPC UNPREDICTABLE value PS[31:16] UNPREDICTABLE value PS.IE 0 (Interrupt Disabled) PS.MODE 2’b01 (Supervisor) PC 0x00
핵심 프로세서 Core-A 활용확산 지원사업 Exception Disassembly Code : 0: c b.al 0x1c 74 4: b.al 0x5 1c 8: b.al 0x4 1c c: b.al 0x3 1c 10: b.al 0x : b.al 0x1 1c 18: b.al 0x0 1c c : 1c: 1c6b0002 movi.al ip, 0x2 20: 420e0000 rfi : 24: 10ccffb8 addi sp, sp, : 532c0000 st.w r0, (sp + 0x0) … 68: 572c0000 ld.w r0, (sp + 0x0) 6c: 10cc0048 addi sp, sp, 72 70: 420e0000 rfi : 74: mui 0x : 0c6c0040 movi.al sp, concat(0x0) 7c: ien 80: call.al 0x : nop
핵심 프로세서 Core-A 활용확산 지원사업 Core-A internally uses logical clock (gated clock), not physical clock All pipelines do not proceed if memory response is pending. nIWAIT nDWAIT D Q CLK Negative Latch Clock Buffer Physical Clock Logical Clock (Gated CLK) Core-A gated-clock
핵심 프로세서 Core-A 활용확산 지원사업 nIWAIT nDWAIT D Q CLK Negative Latch Clock Buffer Physical Clock Logical Clock (Gated CLK) Physical clock Gated logical clock
핵심 프로세서 Core-A 활용확산 지원사업 4KB direct-mapped cache 16 bytes line size / 256 sets Support only write-back / write-allocate policy Critical word first with wrapping burst Coprocessor interface Invalidate All Line Indexed Line Invalidate Indexed Line Clean Indexed Line Store Tag Indexed Line Store Data Indexed Line Load Tag Indexed Line Load Data
핵심 프로세서 Core-A 활용확산 지원사업 2-level hierarchical TLB 2-level hierarchical page table (4MB, 4KB) Hardware-managed page table walk Separate MMU for instruction and data memory 16 fully-associative entries for each TLB Controlled by CP0 Global page support Lockdown support Cacheable support Page execute protection
핵심 프로세서 Core-A 활용확산 지원사업 On-Chip Debugging Logic Tightly-coupled to Core-A Emulator Board can be replaced by ALTERA™ Byte-blaster or XILINX™ Parallel II SW Debugger GDB (Ported to Core-A) Collaborated with Core-A’s Binutils & ISS Eclipse-based GUI Eclipse-based GUI
핵심 프로세서 Core-A 활용확산 지원사업 Core-B Lite Multiple Masters, Multiple Slaves Pipelined Operation Burst Transaction Single Cycle Bus Master Handover Non-tristate Implementation Variable Length of Burst Transfers Startup Address Supporting Wrapping Load Address / Sequential Address Core-B Lite Bus Core-B Lite Arbiter Core-B Lite Arbiter Core-B Lite Master #1 Core-B Lite Master #1 Core-B Lite Master #2 Core-B Lite Master #2 Core-B Lite Decoder Core-B Lite Decoder Core-B Lite Slave #1 Core-B Lite Slave #1 Core-B Lite Slave #2 Core-B Lite Slave #2 CMUXCMUX WMUXWMUX RMUXRMUX Address/Control Write Data Read Data/Ready
핵심 프로세서 Core-A 활용확산 지원사업 Debugging System Core-A Processor Cache Controller Cache Controller MMU 32bit Processor core 32bit Processor core DSP FPU Memory Controller Memory Controller User Logic Core-B/APB Bridge Core-B/APB Bridge AMBA IPs AMBA IPs Standard Peripherals Standard Peripherals In-Circuit Debugger In-Circuit Debugger External memory bus Core-B Lite Bus Extended system bus APB Core-A Processor Bridge AHB AHB Wrapper
핵심 프로세서 Core-A 활용확산 지원사업
어셈블러 및 링커 Core-A Instruction 용 바이너리 코드 생성 자료의존성 (Data Dependency) 분석을 통한 자동 NOP 명령어 삽입 ELF 및 Flat 파일 생성 Link Scipt 를 사용해 메모리 맵에 따라 프로그램 코드 및 데이터의 위치를 지정 디스어셈블러, 파일포맷 변화기 및 라이브러리 생성기 디스어셈블러를 통한 실행파일의 디스어셈블 기능 및 파일 포맷 변환 라이브러리 생성기를 이용한 라이브러리 구현 지원 컴파일러 ANSI C 언어 구문 지원 Inline Assembly Syntax 및 매크로 지원 DWARF2 포맷 디버깅 정보 생성 Embedded C library(newlib), uClinux 의 C library(uClibc) 지원 Floating Point 연산 지원 3 단계의 Machine-independent 및 Machine-dependent 최적화 수행
핵심 프로세서 Core-A 활용확산 지원사업 Integer Core ASIC Implementation Core-AMIPS32 4KARM7TDMI-SARM966E-S Process (um)0.18 Frequency (MHz) Power (mW/MHz) Core Size (mm 2 )** Samsung 0.18Magnachip 0.18Dongbu 0.13 Frequency (MHz)288 (T) 254 (T) 300 (T) Eq. Gate Count29.5K29.9K26K Size (mm)0.6x x0.43 Core-A, ARM : w/o cache, MMU ARM, MIPS : w/ debugger
핵심 프로세서 Core-A 활용확산 지원사업
핵심 프로세서 Core-A 활용확산 지원사업 개발연도 IP 내용 2008 임베디드 프로세서 및 온칩 버스 IP 임베디드 프로세서 (Core-A) 용 Tool Chain Core-A 디버거 임베디드 DSP, FPU Core-A 및 Peripheral IP 기반의 공유 플랫폼 2007 Interrupt Controller UART Timer I2C I2S Programmable Parallel Interface LCD Controller Memory Controller USB 2.0 Function Controller CAN Controller
핵심 프로세서 Core-A 활용확산 지원사업 Core-A 정보 -> IP 신청 및 다운로드
핵심 프로세서 Core-A 활용확산 지원사업 홈페이지를 통한 Online 신청 꼭 기억하세요 !!
핵심 프로세서 Core-A 활용확산 지원사업 협약서 작성 및 제출
핵심 프로세서 Core-A 활용확산 지원사업 IP 다운로드 : 신청 아이디와 비밀번호로 조회 꼭 기억하세요 !!
핵심 프로세서 Core-A 활용확산 지원사업 IP 다운로드 수락 여부 결과
핵심 프로세서 Core-A 활용확신 지원사업 설문지를 작성해 주시면 감사하겠습니다.