View
218
Download
3
Category
Preview:
Citation preview
임베디드시스템설계및실습
2016년 1학기
강의소개
임베디드시스템 설계 및 실습
임베디드시스템설계및실습
2
강의내용
the special requirements that are imposed upon embedded systems
the key features of ARM and Nios II processors
how microprocessor, memory, peripheral components and buses interact in an embedded system
how architectural and implementation decisions influence performance and power dissipation
how to write efficient code for embedded systems
to design and implement an embedded system around an embedded processor using an FPGA development board
임베디드시스템– 강의 소개 (1)
임베디드시스템설계및실습
3
강의교재
주교재: 강의노트와 Tutorials [홈페이지게시]
참고도서
[WO] Marilyn Wolf, Computers as Components, Morgan Kaufmann, 2012
[LE] Edward Ashford Lee, Introduction to Embedded Systems, online, 2014
[BA] Peter Berry, Modern Embedded Computing, Morgan Kaufmann, 2012
[HA] C. Hamacher, Computer Organization and Embedded Systems, 2014
담당교수: 이명진 (artistic.lee@gmail.com, 전206, 300-0421)Office Hour: 월 14:00~17:00
과목조교: 이환희, 이창현 (연구동 303호)과목게시판
http://viscom.kau.ac.kr LECTURES 게시판
임베디드시스템– 강의 소개 (2)
임베디드시스템설계및실습
4
평가
중간(40%), 실습/과제(40%), 설계과제(20%)
출석
당일강의시간의 50% 이상 수강하지않은경우결석처리
수업 ¼ 이상결석시 F
실습데모 / 실습과제
실습일(or 마감일) 기준매주 10%씩감점
실습일(or 마감일) 기준만 3주 이내까지만데모 (접수)
실습조구성
2인 1조
일반실습: 1인 1보드, 개인별실습 데모실시
필요시같은 조에서장비및 부품을공유함
임베디드시스템– 강의 소개 (3)
임베디드시스템설계및실습
5
C언어 : 중급이상(pointer 사용)다음교과목중 2개이상수강 (교과과정개편전유사교과목포함)디지털논리회로, 컴퓨터구조
디지털시스템설계, 전자HW설계
선수 요구 조건 및 과목
임베디드시스템설계및실습
6
주 강의 실습 기타
1 - Embedded System Overview (24p)- Embedded System Product (5p)
- H/W 개발 환경 (DE1-SoC)- S/W 개발 환경 (Eclipse)- Hello World! in DE1-SoC
2 - Embedded System Survey (10p)- Design Methodology (15p)- Embedded Platform Architecture (4p)
- Memory Test
3 - CPU Buses, Bus Protocols (22p)- Computing platforms (4p)
- Debugging Your Systems- Hardware System Design with System Integration Tools
4 - Debugging Embedded Systems (19p)- Computing Platforms: alarm clock (10p)
- Hardware System Design with System Integration Tools
5 - Nios II Processor (28p) - I/O Programming (Using HAL Device Drivers) - KAU_Computer_Std.zip
6 - Nios II Processor (28p)- Embedded Processors (28p)
- Interrupt-based I/O Programming
7 - Embedded Processors (28p) - Design Your Own Alarm Clock on KAU Computer System
8 중간시험
9 - BUS Architecture-- Avalon Interface Specification (21p)-- AMBA (22p)
- Video Display Circuit Design and Programming on KAU Computer System- Video IP Cores
10 - BUS Architecture-- Avalon Interface Specification (21p)-- AMBA (22p)
- Video Display Circuit Design and Programming on KAU Computer System- Video IP Cores
11 - Hardware & Software Co-Design Case Study: Video Analytics
- Video Frame Handling on KAU Computer System- Video IP Cores- Video Analytics IP Cores
12 - Hardware & Software Co-Design Case Study: ARM NEON / Multi-core Threading
- Video Frame Handling on KAU Computer System- Video IP Cores- Video Analytics IP Cores
13 Term Project - Custom H/W IP into your Embedded System Term Project Proposal
14 Term Project - How to Optimize the Video Input/Output Processes
15 Term Project
16 Term Project Presentation Term Project Report
강의 일정 – 변경될 수 있음
임베디드시스템설계및실습
7
실습전반부 (3~4주)DE1-SoC 보드환경파악
DE1-SoC 개발툴사용 (Quartus II, Qsys, Eclipse 등)
DE1-SoC Computer memory & I/O programming
실습중반부 (4~5주)KAU_Computer (최소컴퓨팅환경) 파악
KAU_Computer에 VGA (or Graphic LCD) 회로통합 설계, driver 작성, 응용 프로그램작성
KAU_Computer+VGA(or GraphicLCD)에 Camera (NTSC or 5Mpixel) 회로 통합설계, driver 작성, 응용프로그램 작성
설계프로젝트 (4주)KAU_Computer+VGA(or GraphicLCD)+Camera 통합회로 기반영상응용장치(예: 디지털카메라) 설계
경쟁사항: 카메라 화면의화면률, 화소당컬러비트수, 기타 화면구성의용이함, 터치인터페이스사용, 사진캡처 및저장 속도등
실습 내용
임베디드시스템설계및실습
8
최종 설계 결과물 (2015년 1학기)
임베디드시스템설계및실습
Embedded System Overview
임베디드시스템 설계 및 실습
임베디드시스템설계및실습
10
A device/system that includes a programmable processor but is not itself a general-purpose computerPrimary function is not computational, but is controlled by a programmable processor inside it
Processor carries out the computational subtasks of the main system
e.g., digital cameras, cars, cell phones
The core of most embedded systems is one or more embedded microprocessors or microcontrollersEmbedded system = Embedded processor + Peripherals + Software
Micro-controller = micro-processor + memory + I/O features
Chip (hard) processors: ARM, MIPS, PowerPC
Soft IP processors for FPGAs: Nios II, Microblaze
Multi-core architectures appearing in high-end applications
Embedded System
임베디드시스템설계및실습
11
Must work in real-timeUsually responds to external stimulusSimple OS kernels supporting real-time scheduling
Embedded System
임베디드시스템설계및실습
12
Parts of an Embedded System
임베디드시스템설계및실습
13
임베디드시스템설계및실습
14
Embedded systems cover the entire landscape of systems and products
Fig. Internet-Embedded Devices.
임베디드시스템설계및실습
15
Classification of Embedded Systems
임베디드시스템설계및실습
16
Single-functioned: usually executes a specific program repeatedlyFunctionality not changed very often
Tightly constrained: Designed under many constraintslimited memory
low power/energy
low cost
strict performance guarantees
real-time behavior guarantee: service must be done by deadline
reliability and fail-safe operation
Reactive at real time: Many embedded systems must continually react to changes in the environment and must compute certain results in real timeCar’s cruise controller
Embedded System Characteristics
임베디드시스템설계및실습
17
Highly optimized or hand crafted involving hardware-software codesign design techniquesHighly integrated and single board: System on ChipOften not programmable by end usersAre often mass products
Embedded System Characteristics
임베디드시스템설계및실습
18
A system that is required to respond to stimuli (input or sensor readings) within a small upper limit of time (milli- or microseconds).Update information at the same rate as they receive data, enabling them to direct or control a process.Hard real-time systems: the completion of an operation after its deadline is considered useless and may lead to a disastrous failure of the entire systemLow-level critical parts
Soft real-time systems: Tolerate such lateness, and may respond with decreased service qualityGames, camcorders, printers, etc.
Many systems are multi-rate: must handle operations at widely varying rates
Real-time Systems
임베디드시스템설계및실습
19
Many embedded systems are mass-market itemsLow manufacturing cost
Limited memory, micro-processor power, low maintenance cost, etc.
Power consumption is critical in battery-powered devicesExcessive power consumption increases system cost even in wall-powered devices
Design teamsOften designed by a small team of designers
Often must meet tight deadlines6 month market window is common
Non-functional Requirements
임베디드시스템설계및실습
20
Efficient: can use same logic to perform many different functionsEasy to implement and upgrade: software programmableFast turn-around time: market window is shrinkingSimplify the design of families of productsLow cost when volume is small to medium: ASICs can cost hundreds of millions
Micro-Processors use much more logic to implement a function than does custom logicBut, micro-processors are often at least as fast:Heavily pipelined
Aggressive VLSI technology
Why Use Micro-Processors?
임베디드시스템설계및실습
21
Custom logic used less power, but CPUs have advantages:Modern micro-processors offer features to help control power consumption
Software design techniques can help reduce power consumption
Heterogeneous systems: some custom logic for well-defined functions, CPUs+software for everything else
Alternatives: Application-Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), etcRecent trend: integrate soft and hard microprocessors and other function blocks into an FPGA/ASICSystem-on-a-chip: e.g. Altera SoC, Xilinx Zynq SoC
Much better performance
Why Use Micro-Processors?
임베디드시스템설계및실습
22
A processor with special features tailored to embedded applicationsTake advantage of application characteristics to optimize the design:
Sales: 100 times of high-performance processors.
Chip and soft IP cores for FPGAs
Typical embedded word sizes: 8, 16, 32, and 64 bitsMoving to multi-core architecturesExamples:Chip: ARM, MIPS, 68K, SPARC, PowerPC
Soft-core: Nios (Altera), Microblaze (Xilinx)
Embedded Processors
임베디드시스템설계및실습
23
SoC FPGAs for Embedded Systems
임베디드시스템설계및실습
24
SoC FPGAs for Embedded Systems
Xilinx UltraScale™ Multi-Processing System on Chip (MPSoC) Architecture
임베디드시스템설계및실습
25
SoC FPGAs for Embedded Systems
임베디드시스템설계및실습
Embedded System Products
임베디드시스템 설계 및 실습
임베디드시스템설계및실습
27
Internet of Things (IoT)
Mobile
Embedded System Products
임베디드시스템설계및실습
28
EmbeddedIn-vehicle Infotainment
Embedded Computing
General-Purpose MCUs
Smart Cards
Smart Meter
ADAS
Embedded System Products
임베디드시스템설계및실습
29
Wearables
Home
Enterprise
Embedded System Products
임베디드시스템설계및실습
30
Today’s high-end automobile may have 100 microprocessors:4-bit microcontroller checks seat belt;
microcontrollers run dashboard devices;
16/32-bit microprocessor controls engine
e.g., brake system:Anti-lock brake system (ABS): pumps brakes to reduce skidding
Automatic stability control (ASC+T) (2 processors):
controls engine to improve stability.
Automotive Embedded Systems
임베디드시스템설계및실습
Embedded System Survey
Design west 2013, survey data
임베디드시스템 설계 및 실습
임베디드시스템설계및실습
32
How many micro-processor/-controllers are used?
임베디드시스템설계및실습
33
Types of processors used in the field
임베디드시스템설계및실습
34
Processor cores in processing word width
임베디드시스템설계및실습
35
Popular embedded processors
임베디드시스템설계및실습
36
FPGA in embedded projects
임베디드시스템설계및실습
37
Programming Languages for Embedded Systems
임베디드시스템설계및실습
38
Code Reuse in Embedded System Design
임베디드시스템설계및실습
39
Operating System Usage in Embedded System Design
임베디드시스템설계및실습
40
Popular Operating Systems
임베디드시스템설계및실습
Design Methodology
임베디드시스템 설계 및 실습
임베디드시스템설계및실습
42
The physics of software
Computing is a physical act.Software doesn’t do anything without hardware.
Executing software consumes energy, requires time.To understand the dynamics of software (time, energy), we need to characterize the platform on which the software runs.
임베디드시스템설계및실습
43
What does “performance” mean?
In general-purpose computing, performance often means average-case, may not be well-defined.In real-time systems, performance means meeting deadlines.Missing the deadline by even a little is bad.
Finishing ahead of the deadline may not help.
임베디드시스템설계및실습
44
Characterizing performance
We need to analyze the system at several levels of abstraction to understand performance:CPU.
Platform.
Program.
Task.
Multiprocessor.
임베디드시스템설계및실습
45
Simultaneously optimize numerous design metricsHow much hardware do we need?
How big is the CPU? Memory?
How do we meet our deadlines?Faster hardware or cleverer software?
How do we minimize power?Turn off unnecessary logic? Reduce memory accesses?
Does it really work?Is the specification correct?
Does the implementation meet the spec?
How do we test for real-time characteristics?
How do we test on real data?
How do we work on the system?Observability, controllability?
What is our development platform?
Challenges in Embedded System Design
임베디드시스템설계및실습
46
Design methodologies
A procedure for designing a systemMany systems are complex:large specifications;
multiple designers;
interface to manufacturing.
Methodology is important in embedded computing:Must design many different systems.
We may use same/similar components in many different designs.
Design time, results must be predictable.
Proper processes improve:Productivity
quality;
cost of design and manufacture
임베디드시스템설계및실습
47
Design methodologies
Understanding your methodology helps you ensure you didn’t skip anythingCompilers, software engineering tools, computer-aided design (CAD) tools, etc., can be used to:help automate methodology steps;
keep track of the methodology itself
임베디드시스템설계및실습
48
Design goals
PerformanceOverall speed, deadlines
Functionality and user interfaceManufacturing costPower consumptionOther requirements (physical size, etc.)
임베디드시스템설계및실습
49
Levels of abstraction
임베디드시스템설계및실습
50
Top-down vs. bottom-up
Top-down design:start from most abstract description;
work to most detailed
Bottom-up design:work from small components to big system
Real design uses both techniques
At each level of abstraction, we must:analyze the design to determine characteristics of the current state of the design;
refine the design to add detail
임베디드시스템설계및실습
51
Requirements
Plain language description of what the user wants and expects to getMay be developed in several ways:talking directly to customers;
talking to marketing representatives;
providing prototypes to users for comment
Functional requirements:output as a function of input
Non-functional requirements:time required to compute output;
size, weight, etc.;
power consumption;
reliability;
etc
임베디드시스템설계및실습
52
Specification
A more precise description of the system:should not imply a particular architecture;
provides input to the architecture design process
May include functional and non-functional elementsMay be executable or may be in mathematical form for proofs
임베디드시스템설계및실습
53
Architecture design
What major components go satisfying the specification?Hardware components:CPUs, peripherals, etc
Software components:major programs and their operations
Must take into account functional and non-functional specifications
임베디드시스템설계및실습
54
Designing hardware and software components
Must spend time architecting the system before you start coding.Some components are ready-made, some can be modified from existing designs, others must be designed from scratch.
임베디드시스템설계및실습
55
System integration
Put together the componentsMany bugs appear only at this stage
Have a plan for integrating components to uncover bugs quickly, test as much functionality as early as possible
임베디드시스템설계및실습
끝
Recommended