69
ECEN ECEN 5653 5653 Terminology Guide Terminology Guide January 13, 2008 January 13, 2008 Sam Siewert Sam Siewert Sam Siewert Sam Siewert

ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Embed Size (px)

Citation preview

Page 1: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

ECEN ECEN 56535653

Terminology GuideTerminology Guide

January 13, 2008January 13, 2008 Sam SiewertSam Siewert

Sam SiewertSam Siewert

Page 2: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

8VSB 8VSB -- the modulation method used for broadcast in the ATSC digital television the modulation method used for broadcast in the ATSC digital television

standardstandard used primarily in North America, the modulation method specifies how the used primarily in North America, the modulation method specifies how the

radio signal fluctuates to convey information;radio signal fluctuates to convey information; 8VSB is an 88VSB is an 8--level vestigial sideband level vestigial sideband

modulation capable of transmitting three bits (2modulation capable of transmitting three bits (233=8) per symbol by amplitude =8) per symbol by amplitude

modulating a sinusoidal carrier to an intermediate frequency. The resulting signal is modulating a sinusoidal carrier to an intermediate frequency. The resulting signal is

then bandthen band--pass filtered with a pass filtered with a NyquistNyquist filter to remove redundancies in the side lobes, filter to remove redundancies in the side lobes,

and then again modulated to the broadcast frequency.and then again modulated to the broadcast frequency.

ABI ABI –– Application Binary Interface Application Binary Interface -- ABIs enable binary compatibility, whereas APIs ABIs enable binary compatibility, whereas APIs

enable source code compatibility. POSIX is an API allowing applications to be hosted enable source code compatibility. POSIX is an API allowing applications to be hosted

on various operating systems without source changes, but does require recompilation on various operating systems without source changes, but does require recompilation

for the new target OS. An ABI allows compiled object code to be refor the new target OS. An ABI allows compiled object code to be re--hosted without hosted without

changes on any system implementing that ABI. changes on any system implementing that ABI.

ADC ADC -- Analog to Digital Converter, encodes analog signals into digital values.Analog to Digital Converter, encodes analog signals into digital values.

Sam SiewertSam Siewert 22

ADC ADC -- Analog to Digital Converter, encodes analog signals into digital values.Analog to Digital Converter, encodes analog signals into digital values.

AltivecAltivec -- a floating a floating point and point and integer SIMD instruction set designed and owned by integer SIMD instruction set designed and owned by Apple, IBM and Apple, IBM and FreescaleFreescale Semiconductor, Semiconductor, implemented implemented on versions of the PowerPC on versions of the PowerPC including Motorola's G4, IBM's G5 and POWER6 including Motorola's G4, IBM's G5 and POWER6 processors.processors.

AA--periodic periodic –– lacking a distinguishable frequency or period, having irregular lacking a distinguishable frequency or period, having irregular occurrence. Faults and processing exceptions are in realoccurrence. Faults and processing exceptions are in real--time systems are time systems are aperiodicaperiodicdue to unpredictability of when or how often they might occur.due to unpredictability of when or how often they might occur.

APIAPI -- Application Programmer’s Interface, provides function call interface to lower Application Programmer’s Interface, provides function call interface to lower level software and/or hardware functionality.level software and/or hardware functionality.

AsynchronousAsynchronous -- An event or stimulus that occurs at any point in time rather than at An event or stimulus that occurs at any point in time rather than at known predictable points in time known predictable points in time -- e.g. an external interrupt may occur at any time e.g. an external interrupt may occur at any time and will immediately change the thread of execution on a and will immediately change the thread of execution on a CPUCPU..

Atomic OperationAtomic Operation -- A nonA non--interuptableinteruptable CPU instruction CPU instruction -- i.ei.e any instruction that can any instruction that can be fetched and completed before the CPU can be interruptedbe fetched and completed before the CPU can be interrupted..

Page 3: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

ATSC ATSC -- standards developed by the Advanced Television Systems standards developed by the Advanced Television Systems

Committee for digital television transmission over terrestrial, cable, and Committee for digital television transmission over terrestrial, cable, and

satellite networks, developed in the early 1990s by a consortium of satellite networks, developed in the early 1990s by a consortium of

electronics and telecommunications companies that assembled to develop electronics and telecommunications companies that assembled to develop

a specification for what is now known as HDTV. Mostly used in 8VSB a specification for what is now known as HDTV. Mostly used in 8VSB

modulated OTA (Over The Air) digital transmission today in the United modulated OTA (Over The Air) digital transmission today in the United

States States -- ATSC replaced analog NTSC television in the United States on ATSC replaced analog NTSC television in the United States on

June 12, 2009 and will replace NTSC by August 31, 2011 in Canada, and June 12, 2009 and will replace NTSC by August 31, 2011 in Canada, and

December 31, 2015 in MexicoDecember 31, 2015 in Mexico..

AVC AVC -- H.264/MPEGH.264/MPEG--4 AVC, Advanced Video Coding, a digital video 4 AVC, Advanced Video Coding, a digital video

Sam SiewertSam Siewert 33

AVC AVC -- H.264/MPEGH.264/MPEG--4 AVC, Advanced Video Coding, a digital video 4 AVC, Advanced Video Coding, a digital video

compression format , see H.264compression format , see H.264..

BandwidthBandwidth -- data transfer per unit time, e.g. bytes/second.data transfer per unit time, e.g. bytes/second.

Best EffortBest Effort -- scheduling policy that does not guarantee any particular scheduling policy that does not guarantee any particular

response time for a service request, but attempts to make progress on all response time for a service request, but attempts to make progress on all

such requests and maximize total throughputsuch requests and maximize total throughput..

BB--Frame (MPEG) Frame (MPEG) –– a Bia Bi--predictive frame predictive frame saves even more saves even more space than an Ispace than an I--

frame or Pframe or P--frame frame by using differences between the current frame and both by using differences between the current frame and both

the preceding and following frames to specify its the preceding and following frames to specify its contentcontent

Page 4: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Binary SemaphoreBinary Semaphore -- a a semaphoresemaphore that has only 2 states: full and that has only 2 states: full and empty; a take on an empty binary empty; a take on an empty binary semaphoresemaphore will will blockblock the calling the calling threadthread and a take on a full binary and a take on a full binary semaphoresemaphore will change the state to will change the state to empty; a give on an empty binary empty; a give on an empty binary semaphoresemaphore will change the state to will change the state to full and a give on a full full and a give on a full semaphoresemaphore has no effect.has no effect.

Block Block TransferTransfer -- transfer of data (typically contiguous, but may be a transfer of data (typically contiguous, but may be a scatter/gather listscatter/gather list) that includes multiple memory words/bytes on a bus ) that includes multiple memory words/bytes on a bus with automatic addressing of each element in the block with automatic addressing of each element in the block -- rather than rather than addressing and performing a full bus cycle to transfer each word.addressing and performing a full bus cycle to transfer each word.

BlockingBlocking -- when a when a threadthread of execution has been of execution has been dispatcheddispatched on the on the CPU for execution, but it needs some other resource such as memory CPU for execution, but it needs some other resource such as memory access, an I/O interface, or some other external condition to be true access, an I/O interface, or some other external condition to be true

Sam SiewertSam Siewert 44

access, an I/O interface, or some other external condition to be true access, an I/O interface, or some other external condition to be true such that it must give up the CPU and wait, the such that it must give up the CPU and wait, the threadthread is said to be is said to be blocked.blocked.

BlockBlock--Oriented DriverOriented Driver -- A software I/O device interface which enables A software I/O device interface which enables memory blocks to be transferred to an from the I/O device memory blocks to be transferred to an from the I/O device -- rather than rather than one memory word at a timeone memory word at a time..Bottom Half (BH)Bottom Half (BH) –– In Linux the BH is a routine that is scheduled by In Linux the BH is a routine that is scheduled by the Top Half (TH) to be executed later, at a safer time. This is to avoid the Top Half (TH) to be executed later, at a safer time. This is to avoid lengthy interrupt handlers.lengthy interrupt handlers.BSSBSS -- uninitialized global C program data uninitialized global C program data -- because the data is not because the data is not initialized, this data need not take up space in noninitialized, this data need not take up space in non--volatile memory, but volatile memory, but must be allocated a data segment in working main memory.must be allocated a data segment in working main memory.

Page 5: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Burst TransferBurst Transfer -- A bus transaction which involves an initial address A bus transaction which involves an initial address cycle followed by many data read/write cycles terminated by the cycle followed by many data read/write cycles terminated by the bus bus mastermaster (similar to (similar to Block TransferBlock Transfer, but of unlimited length)., but of unlimited length).

BusBus -- a parallel interface for reading/writing data words from/to a parallel interface for reading/writing data words from/to addresses and includes: digital data lines, address lines, and control addresses and includes: digital data lines, address lines, and control lines lines -- note that address and data lines may be multiplexed rather note that address and data lines may be multiplexed rather than separate lines. than separate lines.

Bus MasterBus Master -- a device which can initiate bus cycles to address a a device which can initiate bus cycles to address a targetarge device and then read/write data to the target device which device and then read/write data to the target device which

Sam SiewertSam Siewert 55

targetarge device and then read/write data to the target device which device and then read/write data to the target device which supplies data or receives data.supplies data or receives data.

Bus AnalyzerBus Analyzer -- a passive device which snoops on a bus to capture a passive device which snoops on a bus to capture a record of all bus cycles a record of all bus cycles -- typically acts like a specialized typically acts like a specialized logic logic analyzer analyzer and can be setup to trigger and start collecting a bus cycle and can be setup to trigger and start collecting a bus cycle trace when a particular address, data, or control bit pattern is active trace when a particular address, data, or control bit pattern is active on the bus.on the bus.

CC (in RMA) (in RMA) -- the execution time required by a the execution time required by a serviceservice to provide a to provide a response not including any time spent blocking (only time where the response not including any time spent blocking (only time where the CPU was in fact being used to compute a response output).CPU was in fact being used to compute a response output).

Page 6: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

CacheCache -- high speed access memory which typically can be read or high speed access memory which typically can be read or written in a single CPU cycle, but due to high cost per storable word, written in a single CPU cycle, but due to high cost per storable word, is used as an efficient copy of a much larger main memory device is used as an efficient copy of a much larger main memory device --hardware functionality is typically included to aid with cache memory hardware functionality is typically included to aid with cache memory management including maintenance of cache/memory coherency, management including maintenance of cache/memory coherency, mapping of main memory addresses to cache lines (mapping of main memory addresses to cache lines (Direct MappedDirect Mapped, , Set Associative, Fully AssociativeSet Associative, Fully Associative), and loading/write), and loading/write--back of data back of data between cache and main memory.between cache and main memory.

Cache CoherencyCache Coherency -- a cached copy of data at a given address will a cached copy of data at a given address will

Sam SiewertSam Siewert 66

Cache CoherencyCache Coherency -- a cached copy of data at a given address will a cached copy of data at a given address will be different than the data at the same address in main memory after be different than the data at the same address in main memory after a cached write to this address a cached write to this address -- when this happens the cache control when this happens the cache control hardware/software must restore agreement between the data in hardware/software must restore agreement between the data in cache and main memory sometime before data would otherwise be cache and main memory sometime before data would otherwise be corrupted. Two main policies are used to maintain coherency corrupted. Two main policies are used to maintain coherency --writewrite--backback and and writewrite--throughthrough -- however, when memory addresses however, when memory addresses are cached and also used for DMA or other types of I/O, special are cached and also used for DMA or other types of I/O, special care must also be taken by application code to ensure that data is care must also be taken by application code to ensure that data is not corrupted by intelligently performing writenot corrupted by intelligently performing write--backs and rebacks and re--loads of loads of cache lines as needed.cache lines as needed.

Page 7: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Cache Hit Cache Hit -- when a read or write is performed by an application on when a read or write is performed by an application on data cached at the address accessed/updated, then this is said to data cached at the address accessed/updated, then this is said to be a cache hit.be a cache hit.

Cache Miss Cache Miss -- when a read or write is performed by an application when a read or write is performed by an application on data that is not presently in cache and therefore the CPU must on data that is not presently in cache and therefore the CPU must first load the data at the address being accessed/modified, this is first load the data at the address being accessed/modified, this is said to be a cache miss.said to be a cache miss.

Cache Line EvictionCache Line Eviction -- a system event where data that is written a system event where data that is written back to memory, freeing up a cache line.back to memory, freeing up a cache line.

Sam SiewertSam Siewert 77

back to memory, freeing up a cache line.back to memory, freeing up a cache line.

Cache Line InvalidationCache Line Invalidation -- a system event where a cache line is a system event where a cache line is marked, typically with a status bit called “dirty”, which indicates that marked, typically with a status bit called “dirty”, which indicates that the cache line must be reloaded from memory before data is read the cache line must be reloaded from memory before data is read from it.from it.

Cache Line LockingCache Line Locking -- Many caches have control features allowing Many caches have control features allowing a program to lock a particular address into a line of cache preventing a program to lock a particular address into a line of cache preventing this line from being replaced when other addresses are loaded this line from being replaced when other addresses are loaded (makes most sense for (makes most sense for set associativeset associative caches rather than direct caches rather than direct mapped) mapped) -- cache line size varies, but is often 16cache line size varies, but is often 16--64 bytes.64 bytes.

Page 8: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Cache Line PreCache Line Pre--fetchfetch -- Many caches have a feature allowing a Many caches have a feature allowing a

program to request the cache to load a cache line despite the fact program to request the cache to load a cache line despite the fact

that the associated address has not been accessed yet that the associated address has not been accessed yet -- the idea is the idea is

that this address will eventually be accessed in the future and rather that this address will eventually be accessed in the future and rather

than stalling the than stalling the CPU pipelineCPU pipeline at the time it is accessed, intelligent at the time it is accessed, intelligent

applications can plan ahead.applications can plan ahead.

Cache Miss PenaltyCache Miss Penalty -- The number of CPU core cycles that the The number of CPU core cycles that the

CPU pipeline must be stalled when a cache line must be loaded CPU pipeline must be stalled when a cache line must be loaded

Sam SiewertSam Siewert 88

after a cache miss in order for a thread of execution to continue.after a cache miss in order for a thread of execution to continue.

CallCall--backback -- a programming technique where a pointer to a function a programming technique where a pointer to a function

is passed to a different function (registered) so that the function is passed to a different function (registered) so that the function

which obtains this pointer can call the function passed to it by which obtains this pointer can call the function passed to it by

reference later on reference later on -- a technique commonly used in user interfaces a technique commonly used in user interfaces

so that an event such as a mouse click can be handled generically so that an event such as a mouse click can be handled generically

by code which however will call any number of user application by code which however will call any number of user application

callbacks when the mouse click event is detected.callbacks when the mouse click event is detected.

Page 9: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Canonical ModeCanonical Mode –– When a terminal command line is sent from a When a terminal command line is sent from a remote client to a server only after return is entered instead of one remote client to a server only after return is entered instead of one character at a timecharacter at a time..

CCTV CCTV –– Closed Circuit Television, an analog composite NTSC Closed Circuit Television, an analog composite NTSC camera and frame grabber signal format.camera and frame grabber signal format.

CFDCFD -- Control Flow Diagram, a diagram used in Structured Control Flow Diagram, a diagram used in Structured Analysis/Design which indicates where control signals in the system Analysis/Design which indicates where control signals in the system originate, where they terminate and how they change the flow of originate, where they terminate and how they change the flow of data and/or the processing of data in a data and/or the processing of data in a DFDDFD. (Note that a CFD is . (Note that a CFD is typically a subset of a DFD which shows both data flow and control typically a subset of a DFD which shows both data flow and control flowflow).).

Sam SiewertSam Siewert 99

flowflow).).

ChromananceChromanance -- the signal used in the signal used in digital video digital video systems to convey systems to convey the color information of the picture, separately from the the color information of the picture, separately from the accompanying accompanying lumaluma signal/value signal/value (or Y for short). Chrominance is (or Y for short). Chrominance is usually represented as two colorusually represented as two color--difference components: U = B' − Y' difference components: U = B' − Y' (blue − (blue − lumaluma) and V = R' − Y' (red − ) and V = R' − Y' (red − lumaluma). Each of these difference ). Each of these difference components may have scale factors and offsets applied to it, as components may have scale factors and offsets applied to it, as specified by the applicable video standardspecified by the applicable video standard..

Page 10: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Circuit Circuit SwtichedSwtiched I/O I/O -- an I/O channel that is dedicated to one and an I/O channel that is dedicated to one and only one data source and sink only one data source and sink -- often the channel may be pointoften the channel may be point--toto--point, but may be switched before the circuit is established. This point, but may be switched before the circuit is established. This stands in contrast to much more widely stands in contrast to much more widely depolyeddepolyed packet switched packet switched digital transport protocols in use today for digital media. digital transport protocols in use today for digital media.

CLICLI -- Command Line Interface, a simple ASCII terminal type Command Line Interface, a simple ASCII terminal type interface that can operate over serial or any other byteinterface that can operate over serial or any other byte--stream I/O stream I/O interface to provide the ability to command a device and obtain basic interface to provide the ability to command a device and obtain basic status informationstatus information..

CODEC CODEC -- Coder/decoder Coder/decoder -- a device that converts analog signals to a device that converts analog signals to digital to be read by a computer or transmitted over a network, and digital to be read by a computer or transmitted over a network, and converts the digital signals back to analog. Sound cards and video converts the digital signals back to analog. Sound cards and video

Sam SiewertSam Siewert 1010

converts the digital signals back to analog. Sound cards and video converts the digital signals back to analog. Sound cards and video cards use this kind of codec. Also, compression/decompression cards use this kind of codec. Also, compression/decompression -- a a twotwo--step process used on very large multimedia files. Files are step process used on very large multimedia files. Files are compressed for storage and then expanded to their original size in compressed for storage and then expanded to their original size in order to play them back on the computer.order to play them back on the computer.

Computational Computational ComplexityComplexity -- the mathematical magnitude of the mathematical magnitude of operations required to successfully execute a given algorithm operations required to successfully execute a given algorithm -- e.g. e.g. searching a data set can take N operations for N items linearly searching a data set can take N operations for N items linearly searched or log(N) operations for a balanced tree search of N items, searched or log(N) operations for a balanced tree search of N items, or even constant C operations for N items with a perfect hashing or even constant C operations for N items with a perfect hashing function. function.

Page 11: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Composite (analog video) Composite (analog video) -- format of an analog television (picture only) signal format of an analog television (picture only) signal before it is combined with a sound signal and modulated onto an RF carrier. In before it is combined with a sound signal and modulated onto an RF carrier. In contrast to contrast to component videocomponent video ((YPbPrYPbPr or RGB) it contains all required video or RGB) it contains all required video information, including colors in a single lineinformation, including colors in a single line--level signal; it is usually in a level signal; it is usually in a standard analog video format such as NTSC.standard analog video format such as NTSC.

Component (analog video) Component (analog video) -- a video signal that has been split into two or more a video signal that has been split into two or more components. In popular use, it refers to a type of analog video information that components. In popular use, it refers to a type of analog video information that is transmitted or stored as three separate signals. When used without any other is transmitted or stored as three separate signals. When used without any other qualifications the term qualifications the term component videocomponent video generally refers to analog generally refers to analog YPbPrYPbPrcomponent video with sync on component video with sync on lumaluma, but S, but S--Video (separate Video (separate lumaluma and and chromachroma), ), RGB and RGB and YPbPrYPbPr signals comprise two or more separate signals: hence, all are signals comprise two or more separate signals: hence, all are componentcomponent--video signals.video signals.

Context SwitchContext Switch -- When a CPU is multiplexed (shared) by more than one When a CPU is multiplexed (shared) by more than one threadthreadof execution and the scheduler provides of execution and the scheduler provides preemptionpreemption, when the scheduler does , when the scheduler does preempt a thread in order to preempt a thread in order to dispatchdispatch another, it must save state information another, it must save state information associated with the currently executing thread (e.g. register values including associated with the currently executing thread (e.g. register values including PCPC) ) so that this so that this threadthread can later be can later be dispatcheddispatched again to restore its thread of again to restore its thread of execution without a state error. The process of preempting a running task in execution without a state error. The process of preempting a running task in response to an interrupt or kernel event followed by dispatch of a new task is a response to an interrupt or kernel event followed by dispatch of a new task is a Context Switch. In some scenarios a thread will exit, suspend or enter a Context Switch. In some scenarios a thread will exit, suspend or enter a delayed or pending state and will yield the CPU which will be followed by a delayed or pending state and will yield the CPU which will be followed by a dispatch of another thread from the ready queue dispatch of another thread from the ready queue –– this is also considered a this is also considered a context switch despite the lack of a priority preemption of an executing thread.context switch despite the lack of a priority preemption of an executing thread.

Sam SiewertSam Siewert 1111

Page 12: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Context Switch OverheadContext Switch Overhead -- the number of machine code instructions the number of machine code instructions (and clock cycles) required to perform a (and clock cycles) required to perform a context switchcontext switch..Continuous MediaContinuous Media -- I/O stream that requires isochronal deliver of data I/O stream that requires isochronal deliver of data between a source and sink between a source and sink -- e.g. video stream, audio stream, and e.g. video stream, audio stream, and possibly a telemetry stream.possibly a telemetry stream.Control FlowControl Flow -- A control flow is a A control flow is a CFDCFD unidirectional association unidirectional association between two processes and/or external entities that indicates an between two processes and/or external entities that indicates an asynchronous mechanism used to control a process or data asynchronous mechanism used to control a process or data source/sink.source/sink.Control PlaneControl Plane -- the bus or network transport and memory buffer path the bus or network transport and memory buffer path for control flow in an architecture which strictly separates data and for control flow in an architecture which strictly separates data and control. Control data and commands are processed to determine data control. Control data and commands are processed to determine data flow parameters, context, and sequencing in the separated flow parameters, context, and sequencing in the separated data planedata plane..

Sam SiewertSam Siewert 1212

flow parameters, context, and sequencing in the separated flow parameters, context, and sequencing in the separated data planedata plane..Cooperative SchedulingCooperative Scheduling –– A method for scheduling threads of A method for scheduling threads of execution through the threads themselves which make calls to transfer execution through the threads themselves which make calls to transfer from one thread execution context to another rather than relying upon a from one thread execution context to another rather than relying upon a centralized schedulercentralized scheduler..CoCo--Processor Processor –– a special purpose processor a special purpose processor used to supplement the used to supplement the functions of the primary processor (the functions of the primary processor (the CPU), such as floating CPU), such as floating point point arithmetic, graphics, signal processing, string processing, or encryption. arithmetic, graphics, signal processing, string processing, or encryption. CPICPI -- Clocks Per Instruction, a measure of CPU efficiency with the ideal Clocks Per Instruction, a measure of CPU efficiency with the ideal that a CPU pipeline should have a CPI of 1.0 or less if the pipeline can that a CPU pipeline should have a CPI of 1.0 or less if the pipeline can retire an instruction every clock retire an instruction every clock -- if the pipeline is also if the pipeline is also superscalarsuperscalar such such that multiple instruction pipelines may execute, then this type of that multiple instruction pipelines may execute, then this type of microparallelismmicroparallelism can theoretically yield a CPI less than 1.0.can theoretically yield a CPI less than 1.0.

Page 13: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

CPUCPU -- Central Processing Unit, a processor core providing arithmetic Central Processing Unit, a processor core providing arithmetic and logic operations, possibly floating point arithmetic, and basic and logic operations, possibly floating point arithmetic, and basic register and memory operations.register and memory operations.

CPU BoundCPU Bound -- When an application program is unable to execute any When an application program is unable to execute any faster due to the clock rate of the CPU and the CPI.faster due to the clock rate of the CPU and the CPI.

CPU PipelineCPU Pipeline -- The use of microThe use of micro--parallelism in the CPU core to provide parallelism in the CPU core to provide a stage of instruction processing every clock such that once the parallel a stage of instruction processing every clock such that once the parallel pipeline is started, an instruction is completed every clock pipeline is started, an instruction is completed every clock -- stages stages typically include: fetch, decode, execution, and writetypically include: fetch, decode, execution, and write--back as a back as a minimum. The key to pipelining is that it is possible for the pipeline to minimum. The key to pipelining is that it is possible for the pipeline to

Sam SiewertSam Siewert 1313

minimum. The key to pipelining is that it is possible for the pipeline to minimum. The key to pipelining is that it is possible for the pipeline to fetch, decode, execute, and writefetch, decode, execute, and write--back all at the same time for 4 back all at the same time for 4 instructions at various stages instructions at various stages -- each instruction will actually take each instruction will actually take multiple cycles to complete, but in the aggregate one instruction is multiple cycles to complete, but in the aggregate one instruction is completed every clock. (Note that pipelines may also be superscalar completed every clock. (Note that pipelines may also be superscalar such that whole pipelines may be run in parallel as wellsuch that whole pipelines may be run in parallel as well).).

CRTCRT -- a vacuum tube containing an electron gun a vacuum tube containing an electron gun and and a fluorescent a fluorescent screen, with internal or external means to accelerate and deflect the screen, with internal or external means to accelerate and deflect the electron beam, used to create images in the form of light emitted from electron beam, used to create images in the form of light emitted from the fluorescent the fluorescent screenscreen used for TV, radar, used for TV, radar, osciloscopesosciloscopes and numerous and numerous other analog image displays.other analog image displays.

Page 14: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Critical InstantCritical Instant -- This assumption made by Liu and This assumption made by Liu and LaylandLayland when they when they

formalized fixed priority RM describes a worstformalized fixed priority RM describes a worst--case scenario where all services case scenario where all services

in a system would be released simultaneously.in a system would be released simultaneously.

Critical SectionCritical Section -- When two independent threads of execution share a When two independent threads of execution share a

resource, such as a shared memory location, the section of code which resource, such as a shared memory location, the section of code which

accesses and possibly updates this shared resource in each thread is called a accesses and possibly updates this shared resource in each thread is called a

critical section critical section -- to ensure correctness, both threads will employ a to ensure correctness, both threads will employ a

synchronization mechanism such as a synchronization mechanism such as a mutexmutex semaphoresemaphore to protect the critical to protect the critical

section.section.

Critical Time Zone Critical Time Zone –– A time interval in RM theory which extends from the last A time interval in RM theory which extends from the last

Sam SiewertSam Siewert 1414

Critical Time Zone Critical Time Zone –– A time interval in RM theory which extends from the last A time interval in RM theory which extends from the last

release of an interfering service to the end of the larger period containing itrelease of an interfering service to the end of the larger period containing it..

CSMA/CDCSMA/CD -- Carrier Sense MultiCarrier Sense Multi--Access / Collision Detection, a protocol used in Access / Collision Detection, a protocol used in

ethernetethernet to detect when a node is already transmitting on the shared link and to to detect when a node is already transmitting on the shared link and to

back off and attempt to use the network later.back off and attempt to use the network later.

CycleCycle--Based ProfilingBased Profiling -- profiling code executing on a processor by periodically profiling code executing on a processor by periodically

saving off the current PC in a trace buffer saving off the current PC in a trace buffer -- most often implemented by an most often implemented by an

interrupt generating counter that counts cycles and can be programmed to raise interrupt generating counter that counts cycles and can be programmed to raise

an interrupt every N cycles an interrupt every N cycles -- the ISR associated can then service the interrupt the ISR associated can then service the interrupt

and save off the PC each time into a trace buffer.and save off the PC each time into a trace buffer.

Page 15: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

D (in RMA)D (in RMA) -- The service deadline relative to request for service.The service deadline relative to request for service.

DACDAC -- Digital to Analog Conversion, most often used to provide analog Digital to Analog Conversion, most often used to provide analog output to an actuator from a digital I/O interface output to an actuator from a digital I/O interface -- e.g. a motor or speaker.e.g. a motor or speaker.

Data Flow DiagramData Flow Diagram -- Data Flow Diagram, a diagram used in Structured Data Flow Diagram, a diagram used in Structured Analysis/Design which indicates where data in the system originates, where Analysis/Design which indicates where data in the system originates, where terminate and how it is processed in between. (Note that a DFD typically terminate and how it is processed in between. (Note that a DFD typically includes a includes a CFDCFD and therefore shows both data flow and control flow).and therefore shows both data flow and control flow).

Data Plane Data Plane –– the bus or network transport and memory buffer path for data the bus or network transport and memory buffer path for data flow, most often DMA transfer blocks, in an architecture which strictly flow, most often DMA transfer blocks, in an architecture which strictly separates data and control. Payload data passes through the system separates data and control. Payload data passes through the system untouched or minimally modified according to commands and context for untouched or minimally modified according to commands and context for

Sam SiewertSam Siewert 1515

untouched or minimally modified according to commands and context for untouched or minimally modified according to commands and context for the flow maintained in the separated the flow maintained in the separated control planecontrol plane..

Data SegmentData Segment -- a memory region reserved for global variables and a memory region reserved for global variables and constants in a C program thread constants in a C program thread -- most often each thread has its own data most often each thread has its own data segment. (Note, most programs include a Stack, Data, and Text segment as segment. (Note, most programs include a Stack, Data, and Text segment as a minimum).a minimum).

Datagram TransportDatagram Transport -- transmission of packets on a link such that errors in transmission of packets on a link such that errors in transmission can be detected, but are not automatically corrected nor is transmission can be detected, but are not automatically corrected nor is there automatic retransmission of lost data there automatic retransmission of lost data -- furthermore, there is no furthermore, there is no concept of a connection (real or virtual) such that multiple messages are concept of a connection (real or virtual) such that multiple messages are unrelated and if fragmented will not be reordered or reassembled unrelated and if fragmented will not be reordered or reassembled automatically.automatically.

Page 16: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

DDRDDR -- Double Data Rate, a bus data encoding technique where read or Double Data Rate, a bus data encoding technique where read or write data is transferred on both edges of a reference clock rather than just write data is transferred on both edges of a reference clock rather than just one (rising edge and falling edge) one (rising edge and falling edge) -- this doubles the data rate.this doubles the data rate.

DeadlineDeadline -- a time relative to a request for service when the service must be a time relative to a request for service when the service must be completed to realize full utility of the service.completed to realize full utility of the service.

Deadline Driven SchedulingDeadline Driven Scheduling –– Dynamic preemptive priority assignment Dynamic preemptive priority assignment scheduling using policies such as Earliest Deadline First or Leastscheduling using policies such as Earliest Deadline First or Least--Laxity Laxity First. As presented by Liu and First. As presented by Liu and LaylandLayland, this is EDF scheduling, however , this is EDF scheduling, however since its introduction, a number of different policies have been proposed in since its introduction, a number of different policies have been proposed in addition to EDFaddition to EDF..

DeadlockDeadlock -- a multia multi--thread condition where 2 or more threads of execution thread condition where 2 or more threads of execution

Sam SiewertSam Siewert 1616

DeadlockDeadlock -- a multia multi--thread condition where 2 or more threads of execution thread condition where 2 or more threads of execution are waiting on resources held by another and the graph of waitare waiting on resources held by another and the graph of wait--for for associations is circular associations is circular -- e.g. if A is waiting on resource R1 to produce e.g. if A is waiting on resource R1 to produce resource R2; and B is waiting on resource R2 to produce resource R1 resource R2; and B is waiting on resource R2 to produce resource R1 -- this this is a deadlock. is a deadlock.

DecoderDecoder -- a digital device which takes a bita digital device which takes a bit--encoded input and produces an encoded input and produces an analog actuator output analog actuator output -- e.g. audio playback decoder which drives a e.g. audio playback decoder which drives a speaker speaker -- hardware or software that translates an encoded signal back to its hardware or software that translates an encoded signal back to its original form. original form.

Deterministic Deterministic –– causal events that are fixed in form, position, and character causal events that are fixed in form, position, and character aprioriapriori; in real; in real--time systems this describes services that provide invariant time systems this describes services that provide invariant responses with no irregularity in timing of response, execution or behavior.responses with no irregularity in timing of response, execution or behavior.

DFDDFD -- Data Flow Diagram, a diagram used in Structured Analysis/Design Data Flow Diagram, a diagram used in Structured Analysis/Design which indicates where data in the system originates, how it is processed, which indicates where data in the system originates, how it is processed, and where it terminates (from data source to data sinkand where it terminates (from data source to data sink).).

Page 17: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

DirectDirect--Mapped CacheMapped Cache -- a a cachecache memory which is has cache lines directly memory which is has cache lines directly mapped to main memory locations such that a given main memory address can mapped to main memory locations such that a given main memory address can be loaded into one and only one cache line, yet a set/range of main memory be loaded into one and only one cache line, yet a set/range of main memory locations may be loaded into that particular line.locations may be loaded into that particular line.

Digital Media Digital Media -- (compared (compared to analog to analog media, e.g. LP record) are electronic or media, e.g. LP record) are electronic or optical media that record optical media that record digital digital codescodes most often based most often based on the binary numeral on the binary numeral systemsystem (discrete states), and include information formats like (discrete states), and include information formats like digital audio, digital audio, digital video and other digital content digital video and other digital content that can that can be created, be created, decoded decoded and and distributed via digital information processing distributed via digital information processing machines with no information loss machines with no information loss once encoded once encoded -- a a profound change from previous (analog) media.profound change from previous (analog) media.

DispatchDispatch –– when the Linux scheduler selects a thread ready to run, restores when the Linux scheduler selects a thread ready to run, restores

Sam SiewertSam Siewert 1717

DispatchDispatch –– when the Linux scheduler selects a thread ready to run, restores when the Linux scheduler selects a thread ready to run, restores state associated with the thread, and transfers execution control back to the state associated with the thread, and transfers execution control back to the thread’s last PC if it was preempted earlier (or to its entry point if the thread is thread’s last PC if it was preempted earlier (or to its entry point if the thread is ready to run for the first timeready to run for the first time).).

DLP DLP -- a trademark owned by Texas Instruments, representing a technology a trademark owned by Texas Instruments, representing a technology used in some TVs and video projectors, originally developed in 1987. DLP is used in some TVs and video projectors, originally developed in 1987. DLP is used in DLP front projectors (small standalone projection units) and DLP rear used in DLP front projectors (small standalone projection units) and DLP rear projection television. DLP, along with LCD and projection television. DLP, along with LCD and LCoSLCoS, are the current display , are the current display technologies behind reartechnologies behind rear--projection television, having supplanted CRT rear projection television, having supplanted CRT rear projectors. These rearprojectors. These rear--projection technologies compete against LCD and projection technologies compete against LCD and plasma flat panel displays in the HDTV market.plasma flat panel displays in the HDTV market.

Page 18: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

DMADMA -- Direct Memory Access, a hardware state machine independent of Direct Memory Access, a hardware state machine independent of the CPU core which is able to transfer data in or out of memory without the CPU core which is able to transfer data in or out of memory without directly executing core instructions, thus allowing the core to continue directly executing core instructions, thus allowing the core to continue execution while regions of memory are copied, updated by an I/O device, or execution while regions of memory are copied, updated by an I/O device, or read out to an I/O device.read out to an I/O device.

DoubleDouble--BufferingBuffering -- a technique often used in continuous media a technique often used in continuous media applications to allow for data acquisition into one buffer while another is applications to allow for data acquisition into one buffer while another is being readbeing read--out and processed out and processed -- when the acquisition buffer is full, the buffer when the acquisition buffer is full, the buffer pointers are swapped such that the newly acquired data is processed and pointers are swapped such that the newly acquired data is processed and the already processed buffer can now be used for acquisition.the already processed buffer can now be used for acquisition.

Sam SiewertSam Siewert 1818

the already processed buffer can now be used for acquisition.the already processed buffer can now be used for acquisition.

DriverDriver -- a driver is software composed of code which interfaces to a a driver is software composed of code which interfaces to a hardware device and provides buffering, control, and status and which also hardware device and provides buffering, control, and status and which also interfaces to RTOS threads/applications and provides controlled access to interfaces to RTOS threads/applications and provides controlled access to the hardware device for I/O.the hardware device for I/O.

DSPDSP -- Digital Signal Processing, a specialized embedded processor core Digital Signal Processing, a specialized embedded processor core which includes parallel mixed analog and digital processing for typical signal which includes parallel mixed analog and digital processing for typical signal processing functions processing functions -- e.g. for a Fourier transform.e.g. for a Fourier transform.

DudeDude -- Etymology: origin unknownEtymology: origin unknown11 :: a man extremely fastidious in dress and manner a man extremely fastidious in dress and manner : : DANDYDANDY22 :: a city dweller unfamiliar with life on the range; a city dweller unfamiliar with life on the range; especiallyespecially :: an Easterner an Easterner in the West in the West –– webster.comwebster.com

Page 19: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Dynamic LinkingDynamic Linking -- a technique where a technique where PIC PIC software compiled into an object file software compiled into an object file format such as format such as ELFELF can be loaded and linked into existing software on can be loaded and linked into existing software on onon the fly the fly either as a dynamically linked library or as a kernel module.either as a dynamically linked library or as a kernel module.Dynamic PriorityDynamic Priority -- when thread or interrupt processing priorities are changed during when thread or interrupt processing priorities are changed during run time by code, they are said to be dynamic.run time by code, they are said to be dynamic.Earliest Deadline FirstEarliest Deadline First -- a dynamic priority scheme for scheduling where services a dynamic priority scheme for scheduling where services are assigned priority dynamically every time the ready queue is updated, with highest are assigned priority dynamically every time the ready queue is updated, with highest priority given to the service with the earliest impending deadline priority given to the service with the earliest impending deadline -- the scheme the scheme requires not only dynamic priority, but requires not only dynamic priority, but preemptionpreemption to workto work..EFSMEFSM -- Extended Finite State Machine, a formal method based upon state machines Extended Finite State Machine, a formal method based upon state machines which extends the basic state transition on I/O to include side effects on transitions which extends the basic state transition on I/O to include side effects on transitions such as global data update and data processing.such as global data update and data processing.ELFELF -- Executable and Linking Format, an object file format which includes significant Executable and Linking Format, an object file format which includes significant annotation and is PIC such that these files can be dynamically loaded and linked and annotation and is PIC such that these files can be dynamically loaded and linked and

Sam SiewertSam Siewert 1919

annotation and is PIC such that these files can be dynamically loaded and linked and annotation and is PIC such that these files can be dynamically loaded and linked and such that they can serve for supporting debug and trace analysis to map addresses such that they can serve for supporting debug and trace analysis to map addresses back to source codeback to source code..Elementary Stream Elementary Stream -- defined by MPEG communication protocol is usually the output defined by MPEG communication protocol is usually the output of an audio or video encoder. ES contains only one kind of data, e.g. audio, video or of an audio or video encoder. ES contains only one kind of data, e.g. audio, video or closed caption. An elementary stream is often referred to as "elementary", "data", closed caption. An elementary stream is often referred to as "elementary", "data", "audio", or "video" "audio", or "video" bitstreamsbitstreams or streams. The format of the elementary stream or streams. The format of the elementary stream depends upon the codec or data carried in the stream, but will often carry a common depends upon the codec or data carried in the stream, but will often carry a common header when packetized into a packetized elementary stream.header when packetized into a packetized elementary stream.Embedded SystemEmbedded System -- a digital and analog computer system which provides a specific a digital and analog computer system which provides a specific set of services, driven by sensor inputs, and producing sensor outputs to provide set of services, driven by sensor inputs, and producing sensor outputs to provide services services -- e.g. digital control in an e.g. digital control in an anitanit--lock braking system or call switching and lock braking system or call switching and billing management for a telecommunications main trunk (Note that the scale of the billing management for a telecommunications main trunk (Note that the scale of the services provided and of the hardware itself does not matter).services provided and of the hardware itself does not matter).

Page 20: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

EncoderEncoder -- a circuit which takes analog signal inputs and using and a circuit which takes analog signal inputs and using and ADC converts them to digital and bit encodes them ADC converts them to digital and bit encodes them -- e.g. an audio e.g. an audio recorder which takes analog microphone input and encodes the recorder which takes analog microphone input and encodes the input signal into 255 different tones input signal into 255 different tones -- a sensor or transducer for a sensor or transducer for converting rotary motion or position to a series of electronic pulses.converting rotary motion or position to a series of electronic pulses.

Entry PointEntry Point -- an address in a an address in a text segmenttext segment which is the first which is the first instruction in a function and serves as the starting point for a thread instruction in a function and serves as the starting point for a thread such that a scheduler can simply set the such that a scheduler can simply set the PCPC to this address in order to this address in order to start execution of this thread.to start execution of this thread.

Sam SiewertSam Siewert 2020

to start execution of this thread.to start execution of this thread.

EventEvent--Based ProfilingBased Profiling -- a profiling technique where the PC is a profiling technique where the PC is saved into a trace buffer whenever events of a specific type exceed saved into a trace buffer whenever events of a specific type exceed a threshold a threshold -- e.g. when data cache misses exceed N misses, the PC e.g. when data cache misses exceed N misses, the PC is saved into a trace buffer.is saved into a trace buffer.

Page 21: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Exception (NMI)Exception (NMI) -- an exception is normally a nonan exception is normally a non--maskable interrupt maskable interrupt

because it signifies a serious error condition which must be handled before because it signifies a serious error condition which must be handled before

any program should continue execution any program should continue execution -- e.g. a bus error.e.g. a bus error.

Execution JitterExecution Jitter -- when a service is dispatched and the number of cycles when a service is dispatched and the number of cycles

and/or instructions required to complete the service varies on each release, and/or instructions required to complete the service varies on each release,

this service is said to have execution jitter.this service is said to have execution jitter.

Extended Finite State MachineExtended Finite State Machine -- an FSM (Finite State Machine) with more an FSM (Finite State Machine) with more

features than just states and I/O transitions so that the Von Neumann features than just states and I/O transitions so that the Von Neumann

architecture and general programs may be modeled formally architecture and general programs may be modeled formally -- e.g. on a e.g. on a

Sam SiewertSam Siewert 2121

architecture and general programs may be modeled formally architecture and general programs may be modeled formally -- e.g. on a e.g. on a

state transition a procedural function may be called and or global memory state transition a procedural function may be called and or global memory

updated.updated.

External FragmentationExternal Fragmentation -- when blocks of a resource such as memory are when blocks of a resource such as memory are

allowed to be arbitrarily sized, small sections of the resource between used allowed to be arbitrarily sized, small sections of the resource between used

sections may evolve from successive allocations and frees such that sections may evolve from successive allocations and frees such that

significant resource exists, but is unusable unless allocations are moved to significant resource exists, but is unusable unless allocations are moved to

provide larger contiguous free spaces from small many nonprovide larger contiguous free spaces from small many non--contiguous contiguous

spaces. (fragmentation outside of blocks).spaces. (fragmentation outside of blocks).

Page 22: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

FCFSFCFS -- First Come, First Served, the policy often used by an RTOS when First Come, First Served, the policy often used by an RTOS when services/threads are at the same priority level services/threads are at the same priority level -- i.e. the first service ready is i.e. the first service ready is the first one dispatched.the first one dispatched.

Feasibility TestFeasibility Test -- An algorithmic or formulaic operation that takes a set of An algorithmic or formulaic operation that takes a set of services and their services and their RMRM characteristics and will provide a binary output characteristics and will provide a binary output indicating whether this service set can be scheduled given resources indicating whether this service set can be scheduled given resources available and resources required by the service set.available and resources required by the service set.

FeedbackFeedback -- a signal used in control systems which provides sensor inputs a signal used in control systems which provides sensor inputs to compute the difference between desired and actual plant state such that to compute the difference between desired and actual plant state such that a control law can drive the plant to a desired target control point.a control law can drive the plant to a desired target control point.

Sam SiewertSam Siewert 2222

a control law can drive the plant to a desired target control point.a control law can drive the plant to a desired target control point.FIFOFIFO -- First In, First Out, a policy for queues (e.g. a dispatch queue) where First In, First Out, a policy for queues (e.g. a dispatch queue) where the first element queued is always the first element dethe first element queued is always the first element de--queuedqueued. For POSIX . For POSIX (NPTL) threads, this means thread scheduling where threads are (NPTL) threads, this means thread scheduling where threads are dispatched to run to completion from the ready queue in FIFO order. dispatched to run to completion from the ready queue in FIFO order. Fixed Priority Scheduling Fixed Priority Scheduling -- a scheduling policy whereby threads on the a scheduling policy whereby threads on the ready queue are dispatched in priority order and the priority of any given ready queue are dispatched in priority order and the priority of any given thread is not modified over time.thread is not modified over time.Floor Floor -- The floor is a mathematical operation that can be performed on a The floor is a mathematical operation that can be performed on a real number (floating point) real number (floating point) -- the floor(n) is the closest integer whole the floor(n) is the closest integer whole number less than or equal to n number less than or equal to n -- e.g. floor(1.1) = 1. (note that floor(1.0) = e.g. floor(1.1) = 1. (note that floor(1.0) = ceiling(1.0) assuming that the significance is 1, which is the ceiling(1.0) assuming that the significance is 1, which is the thethe typical typical definition of floor and ceiling unless otherwise noted).definition of floor and ceiling unless otherwise noted).

Page 23: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Flow ControlFlow Control -- signals between a data transmitter and receiver signals between a data transmitter and receiver

used to indicate buffer capabilities on each side so that a transmitter used to indicate buffer capabilities on each side so that a transmitter

does not overdrive a receiver resulting in data loss when the does not overdrive a receiver resulting in data loss when the

receiver is unable to buffer incoming datareceiver is unable to buffer incoming data..

Flynn’s Taxonomy Flynn’s Taxonomy -- is a classification of computer architectures, is a classification of computer architectures,

proposed by Michael J. Flynn in proposed by Michael J. Flynn in 1966, which classifies processor 1966, which classifies processor

architecture in terms of whether it applies single or multiple architecture in terms of whether it applies single or multiple

instructions to single or multiple data operands. The cross product instructions to single or multiple data operands. The cross product

Sam SiewertSam Siewert 2323

of these two dimensions therefore leads to SISD (Single Instruction of these two dimensions therefore leads to SISD (Single Instruction

Single Data), MISD (Multiple Instruction Single Data), SIMD (Single Single Data), MISD (Multiple Instruction Single Data), SIMD (Single

Instruction Multiple Data), and MIMD (Multiple Instruction Multiple Instruction Multiple Data), and MIMD (Multiple Instruction Multiple

Data) processors.Data) processors.

Fixed Priority SchedulingFixed Priority Scheduling -- a scheduling policy whereby threads a scheduling policy whereby threads

on the ready queue are dispatched in priority order and the priority on the ready queue are dispatched in priority order and the priority

of any given thread is not modified over time (except by the of any given thread is not modified over time (except by the

application itself).application itself).

Page 24: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Fully Associative Cache Fully Associative Cache -- A A cachecache which allows main memory which allows main memory addresses to be loaded to any cache line addresses to be loaded to any cache line -- this is the this is the idealcacheidealcache since since replacement is not constrained at all, but associative memory is replacement is not constrained at all, but associative memory is complex and expensive complex and expensive -- by comparison a by comparison a direct mapped cachedirect mapped cache is is completely constrained and a completely constrained and a set associativeset associative is a compromise.is a compromise.

Gather Read List Gather Read List -- A list of not necessarily contiguous addresses in A list of not necessarily contiguous addresses in memory that are to be read into a contiguous buffer memory that are to be read into a contiguous buffer -- e.g. a host e.g. a host memory may have multiple blocks in memory scattered through memory may have multiple blocks in memory scattered through memory space that are to be read by an I/O device which will gather all memory space that are to be read by an I/O device which will gather all these blocks into a single contiguous buffer before an I/O operation.these blocks into a single contiguous buffer before an I/O operation.

GDTGDT –– Global Descriptor Table Global Descriptor Table -- a data structure used by x86 IA32 to a data structure used by x86 IA32 to

Sam SiewertSam Siewert 2424

GDTGDT –– Global Descriptor Table Global Descriptor Table -- a data structure used by x86 IA32 to a data structure used by x86 IA32 to define characteristics of memory regions used during program define characteristics of memory regions used during program execution (base address, the size and access privileges execution (base address, the size and access privileges execute/read/write) and Task State Segments (TSS) including register execute/read/write) and Task State Segments (TSS) including register state, IO port state, and stack pointersstate, IO port state, and stack pointers..

GeekGeek -- a carnival performer whose act usually includes biting the head a carnival performer whose act usually includes biting the head off a live chicken or snake; or more recently, a person often of an off a live chicken or snake; or more recently, a person often of an intellectual bent who is disapproved of by othersintellectual bent who is disapproved of by others..

GOPGOP –– Group of PicturesGroup of Pictures, specifies the order in which intra, specifies the order in which intra-- and interand inter--frames are frames are arranged in MPEG encoding, including I, P, and B frames.arranged in MPEG encoding, including I, P, and B frames.

Page 25: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

GPU GPU –– Graphics Processing Unit, a specialized microprocessor that offloads a specialized microprocessor that offloads and accelerates graphics rendering from the central and accelerates graphics rendering from the central CPU, designed to provide CPU, designed to provide 2D and 3D vector processing (4D for shading and other advanced rendering 2D and 3D vector processing (4D for shading and other advanced rendering features), and to drive common displays (LCD, CRT, DLP).features), and to drive common displays (LCD, CRT, DLP).GPGP--GPU GPU –– General Purpose GPU, an extension to 4D vector processing for General Purpose GPU, an extension to 4D vector processing for more general use in grid and mesh algorithms such as finite element methods, more general use in grid and mesh algorithms such as finite element methods, graph theory, image processing, and HPC (High Performance Computing) in graph theory, image processing, and HPC (High Performance Computing) in general for algorithms that are general for algorithms that are embarassinglyembarassingly parallel by nature of their parallel by nature of their grid/mesh formulation.grid/mesh formulation.

H.264 H.264 -- MPEGMPEG--4 Part 104 Part 10 or or AVCAVC (Advanced Video Coding) standard for video (Advanced Video Coding) standard for video compression, currently one of the most commonly used formats for the compression, currently one of the most commonly used formats for the recording, compression, and distribution of high definition video. The final recording, compression, and distribution of high definition video. The final drafting work on the first version of the standard was completed in May 2003. drafting work on the first version of the standard was completed in May 2003.

Sam SiewertSam Siewert 2525

drafting work on the first version of the standard was completed in May 2003. drafting work on the first version of the standard was completed in May 2003. The codec is blockThe codec is block--oriented motionoriented motion--compensationcompensation--based codec standard based codec standard developed by the ITUdeveloped by the ITU--T Video Coding Experts Group (VCEG) together with the T Video Coding Experts Group (VCEG) together with the ISO/IEC Moving Picture Experts Group (MPEG). It was the product of a ISO/IEC Moving Picture Experts Group (MPEG). It was the product of a partnership effort known as the Joint Video Team (JVT). The ITUpartnership effort known as the Joint Video Team (JVT). The ITU--T T H.264H.264standard and the ISO/IEC standard and the ISO/IEC MPEGMPEG--44 AVCAVC standard (formally, ISO/IECstandard (formally, ISO/IEC 1449614496--10 10 --MPEGMPEG--4 Part 10, Advanced Video Coding) are jointly maintained so that they 4 Part 10, Advanced Video Coding) are jointly maintained so that they have identical technical content. The codec is best known as being one of the have identical technical content. The codec is best known as being one of the codec standards for codec standards for BluBlu--ray Discs and is widely used by streaming internet ray Discs and is widely used by streaming internet sources, such as YouTube, web software such as the Adobe Flash Player, sources, such as YouTube, web software such as the Adobe Flash Player, broadcast services for DVB, directbroadcast services for DVB, direct--broadcast satellite television services, cable broadcast satellite television services, cable television services, and realtelevision services, and real--time videoconferencing.time videoconferencing.

Page 26: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Hacker Hacker -- a person who is inexperienced or unskilled at a particular a person who is inexperienced or unskilled at a particular activity: an expert at programming and solving problems with a activity: an expert at programming and solving problems with a computer : a person who illegally gains access to and sometimes computer : a person who illegally gains access to and sometimes tampers with information in a computer system tampers with information in a computer system –– webster.comwebster.com

Hard RealHard Real--TimeTime -- A service or set of services which are required to A service or set of services which are required to meet their deadlines relative to request frequency meet their deadlines relative to request frequency -- if such deadlines if such deadlines are missed, there is not only no utility in continuing the service, but are missed, there is not only no utility in continuing the service, but in fact the consequences to the system are considered fatal or in fact the consequences to the system are considered fatal or critical.critical.

Sam SiewertSam Siewert 2626

critical.critical.

HarmonicHarmonic -- When the relative periods of services are all common When the relative periods of services are all common multiples of each other multiples of each other -- this characteristic can yield cases where this characteristic can yield cases where the CPU resource can be deterministically scheduled to full utility. the CPU resource can be deterministically scheduled to full utility. For example, T1=2, T2=5, T3=10 has a base frequency of 1/10For example, T1=2, T2=5, T3=10 has a base frequency of 1/10thth Hz Hz and has the harmonic sequence of 1x, 2x, 5x for the base and has the harmonic sequence of 1x, 2x, 5x for the base frequency.frequency.

Harvard ArchitectureHarvard Architecture -- a core CPU architecture which splits the a core CPU architecture which splits the memory hierarchy into separate instruction and data streams memory hierarchy into separate instruction and data streams --typically including an L1 instruction cache which is independent of typically including an L1 instruction cache which is independent of an L1 data cachean L1 data cache..

Page 27: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

HDTV HDTV -- refers to video having resolution substantially higher than refers to video having resolution substantially higher than

traditional television systems (standardtraditional television systems (standard--definition TV, or definition TV, or SDTV , SDTV , or or

SD). HD SD). HD often has millions often has millions pixels per frame, pixels per frame, often more than often more than five five

times that of times that of SD 640x480 and also includes nonSD 640x480 and also includes non--interlaced interlaced

progressive raster modes.progressive raster modes.

HeapHeap -- A memory space used for dynamic buffer management A memory space used for dynamic buffer management

and/or dynamic allocation of memory as requested by an application and/or dynamic allocation of memory as requested by an application

-- heap space is memory outside the data, text, and stack segments heap space is memory outside the data, text, and stack segments

Sam SiewertSam Siewert 2727

and is most often accessed in Linux using and is most often accessed in Linux using mallocmalloc and related and related

dynamic memory allocation functions.dynamic memory allocation functions.

High AvailabilityHigh Availability -- A system which guarantees that it will be ready A system which guarantees that it will be ready

to provide services with a quantifiable reliability to provide services with a quantifiable reliability -- e.g. a system is e.g. a system is

said to provide 5 9’s availability if it is ready to provide service upon said to provide 5 9’s availability if it is ready to provide service upon

request 99.999% of a given year (I.e. is only unavailable for a total request 99.999% of a given year (I.e. is only unavailable for a total

of about 5 minutes per year). Note that HA systems can crash, but of about 5 minutes per year). Note that HA systems can crash, but

they can’t be out of service very long if they dothey can’t be out of service very long if they do..

Page 28: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

High ReliabilityHigh Reliability -- A system which has been designed to have a very low A system which has been designed to have a very low probability of failure to provide services probability of failure to provide services -- typically measures such as typically measures such as redundancy, cross strapping, and fail safe modes are designed in to ensure that redundancy, cross strapping, and fail safe modes are designed in to ensure that critical services have an extremely low likelihood of failurecritical services have an extremely low likelihood of failure..

HostHost -- Desktop development computing system used in Desktop development computing system used in IDEIDE for cross for cross compilation, cross debugging, connection to the target agent, trace tools and compilation, cross debugging, connection to the target agent, trace tools and any number of other tools that connect to a target server on the host to any number of other tools that connect to a target server on the host to communicate with communicate with target agenttarget agent software resident on the embedded systemsoftware resident on the embedded system..

HSV (color model) HSV (color model) –– Hue, SaturationHue, Saturation, Value, common , Value, common cylindricalcylindrical--coordinate coordinate representations representations of points in an RGB color model, which rearrange the geometry of points in an RGB color model, which rearrange the geometry of RGB in an attempt to be more perceptually relevant than the of RGB in an attempt to be more perceptually relevant than the cartesiancartesianrepresentation. They were developed in the 1970s for computer graphics representation. They were developed in the 1970s for computer graphics applications, and are used for color pickers, in colorapplications, and are used for color pickers, in color--modification tools in image modification tools in image

Sam SiewertSam Siewert 2828

applications, and are used for color pickers, in colorapplications, and are used for color pickers, in color--modification tools in image modification tools in image editing software, and less commonly for image analysis and computer visionediting software, and less commonly for image analysis and computer vision..

II--Frame (MPEG) Frame (MPEG) -- IntraIntra--frame codingframe coding is used in video coding (compression). It is used in video coding (compression). It is part of group of pictures with inter is part of group of pictures with inter frames, where frames, where an intraan intra--frame frame applies only applies only compression techniques compression techniques relative to information that is contained only within the relative to information that is contained only within the current framecurrent frame, and , and not relativenot relative to any other frame in the video to any other frame in the video sequence.sequence.

Image Processing (digital) Image Processing (digital) -- any form of any form of digital signal digital signal processing for which the processing for which the input is an input is an 2D digital image array, 2D digital image array, such as a photograph or video frame; the such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or output of image processing may be either an image or, a set of characteristics or parameters related to the image. Most imageparameters related to the image. Most image--processing techniques involve processing techniques involve treating the image as a twotreating the image as a two--dimensional dimensional digital image digital image and applying standard and applying standard signalsignal--processing techniques to itprocessing techniques to it..

Page 29: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

ImportanceImportance -- in realin real--time systems theory services with low priority based time systems theory services with low priority based upon upon RMRM policy may still be critical to system operation policy may still be critical to system operation -- they are important they are important despite being low prioritydespite being low priority..

InterferenceInterference -- when a higher priority thread preempts a lower one in a fixed when a higher priority thread preempts a lower one in a fixed priority preemptive system the time that the CPU is unavailable to lower priority preemptive system the time that the CPU is unavailable to lower priority threads is referred to as interference time.priority threads is referred to as interference time.

Internal FragmentationInternal Fragmentation -- When a resource such as memory is made When a resource such as memory is made available in minimum sized blocks, this can help reduce available in minimum sized blocks, this can help reduce external external fragmentationfragmentation, but when a user of the resource requires less than a full , but when a user of the resource requires less than a full block, this causes internal fragmentation.block, this causes internal fragmentation.

Sam SiewertSam Siewert 2929

block, this causes internal fragmentation.block, this causes internal fragmentation.

InterruptInterrupt –– A hardware signal assertion into the CPU core from an IO A hardware signal assertion into the CPU core from an IO device to indicate that an event has occurred such as data available on an device to indicate that an event has occurred such as data available on an input interface (e.g. a sensor sample or DMA transfer has been completed).input interface (e.g. a sensor sample or DMA transfer has been completed).

Interrupt Handler Interrupt Handler -- during the normal CPU pipeline processing (fetch, during the normal CPU pipeline processing (fetch, decode, execute, writedecode, execute, write--back) an external device may assert an signal input back) an external device may assert an signal input or an internal subor an internal sub--block may also assert a signal input to the CPU core block may also assert a signal input to the CPU core which causes it to asynchronously branch to an interrupt vector (a memory which causes it to asynchronously branch to an interrupt vector (a memory location) where basic code called the handler acknowledges and services location) where basic code called the handler acknowledges and services the hardware and then calls application the hardware and then calls application ISRsISRs..

Interrupt LatencyInterrupt Latency -- the delay between assertion of an interrupt signal by a the delay between assertion of an interrupt signal by a device and the time at which the PC is vectored to an interrupt handler is device and the time at which the PC is vectored to an interrupt handler is known as the interrupt latency.known as the interrupt latency.

Page 30: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Interrupt VectorInterrupt Vector -- an address in memory where the CPU sets the an address in memory where the CPU sets the

PC after an interrupt signal is asserted, causing the CPU to PC after an interrupt signal is asserted, causing the CPU to

asynchronously branch to this location and to execute the instruction asynchronously branch to this location and to execute the instruction

there there -- normally a CPU will have a number of interrupt inputs (e.g. normally a CPU will have a number of interrupt inputs (e.g.

x86 IRQ0x86 IRQ0--15) and each signal asserted causes the CPU to vector to 15) and each signal asserted causes the CPU to vector to

a different address such that different handlers can be associated a different address such that different handlers can be associated

with each interrupt signal.with each interrupt signal.

Interval TimerInterval Timer -- a doublea double--buffered state machine in a CPU core buffered state machine in a CPU core

Sam SiewertSam Siewert 3030

which allows software to set a value in a register that is loaded into a which allows software to set a value in a register that is loaded into a

separate countseparate count--down register which asserts an interrupt at zero (or down register which asserts an interrupt at zero (or

perhaps all F’s if it counts up) and automatically is reloaded with the perhaps all F’s if it counts up) and automatically is reloaded with the

interval register value to repeat the process over and over interval register value to repeat the process over and over -- this this

hardware is used for nonhardware is used for non--realtimerealtime Linux process roundLinux process round--robin timerobin time--

slice scheduling of all user processes.slice scheduling of all user processes.

IO BoundIO Bound -- a condition where an application does not have a condition where an application does not have

sufficient I/O bandwidth to meet throughput goals or realsufficient I/O bandwidth to meet throughput goals or real--time time

deadlines.deadlines.

Page 31: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

ISA Legacy InterruptISA Legacy Interrupt -- Industry Standard Architecture Legacy Interrupt, Industry Standard Architecture Legacy Interrupt,

specifically refers to x86 architecture IRQ0specifically refers to x86 architecture IRQ0--15 which have been part of the 15 which have been part of the

x86 architecture from the beginning (8086) and support a number of wellx86 architecture from the beginning (8086) and support a number of well--

known PC devices and services such as booting from a hard drive.known PC devices and services such as booting from a hard drive.

IsochronalIsochronal -- uniform in time, having equal duration, recurring at regular uniform in time, having equal duration, recurring at regular

intervals; literally the same in time, which in realintervals; literally the same in time, which in real--time systems means that a time systems means that a

service is required to produce a response at a precise time relative to a service is required to produce a response at a precise time relative to a

service request service request -- not too early and not too late. This is important to not too early and not too late. This is important to

continuous media applications and digital control which are sensitive to continuous media applications and digital control which are sensitive to

Sam SiewertSam Siewert 3131

continuous media applications and digital control which are sensitive to continuous media applications and digital control which are sensitive to

jitterjitter. Most often isochronal services hold a response computed ahead of . Most often isochronal services hold a response computed ahead of

deadline that is delivered to an interface within a narrow band around the deadline that is delivered to an interface within a narrow band around the

optimal time. For data transport, isochronal channels provide guaranteed optimal time. For data transport, isochronal channels provide guaranteed

bandwidth and latency characteristics so that the transmission of continuous bandwidth and latency characteristics so that the transmission of continuous

media is provided with a constant bit, byte, or frame rate per unit time.media is provided with a constant bit, byte, or frame rate per unit time.

ISRISR -- Interrupt Service Routine, the application level of an interrupt handler Interrupt Service Routine, the application level of an interrupt handler

which is often a callwhich is often a call--back function registered with an RTOS that installs the back function registered with an RTOS that installs the

interrupt handlerinterrupt handler at an at an interrupt vectorinterrupt vector..

Page 32: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

JiffyJiffy -- a term to describe the tick of a hardware interval timer a term to describe the tick of a hardware interval timer –– in Linux it is in Linux it is

the count of interval timer interrupts since the system started and the the count of interval timer interrupts since the system started and the

smallest unit of time that Linux can track smallest unit of time that Linux can track -- e.g. on x86 architecture the e.g. on x86 architecture the

standard interval timer ticks about every 0.45 microseconds. The Linux OS standard interval timer ticks about every 0.45 microseconds. The Linux OS

typically loads an interval timer counttypically loads an interval timer count--down to generate interrupts such that down to generate interrupts such that

it can control processes on a 10 millisecond software tick, thus most often it can control processes on a 10 millisecond software tick, thus most often

the number of jiffies is the number of ticks the system has had since start the number of jiffies is the number of ticks the system has had since start

and the definition can be found in <and the definition can be found in <linuxlinux//jiffies.hjiffies.h>.>.

JitterJitter -- when latency and/or timing of an operation or process changes with when latency and/or timing of an operation or process changes with

Sam SiewertSam Siewert 3232

JitterJitter -- when latency and/or timing of an operation or process changes with when latency and/or timing of an operation or process changes with

each iteration, this is jitter each iteration, this is jitter -- i.e. when latency/timing is not constant. Jitter as i.e. when latency/timing is not constant. Jitter as

a term can be used to describe many different types of operations or a term can be used to describe many different types of operations or

processes processes -- e.g. execution jitter, period jitter, response jittere.g. execution jitter, period jitter, response jitter..

Join (Join (pthreadpthread) ) ––When POSIX (NPTL) threads are configured to When POSIX (NPTL) threads are configured to

rendezvous at a common barrier with the main thread that created and rendezvous at a common barrier with the main thread that created and

spawned/forked them (otherwise they should be detached to run to spawned/forked them (otherwise they should be detached to run to

completion and exit with no rendezvous with their parent thread).completion and exit with no rendezvous with their parent thread).

Page 33: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

KeepKeep--alivealive -- an indication from a thread/process/task on a system an indication from a thread/process/task on a system that it is functioning normally or perhaps similar indication from a that it is functioning normally or perhaps similar indication from a subsystem in a larger system subsystem in a larger system -- the keepthe keep--alive is most often a simple alive is most often a simple ID and count indicating that the subsystem/thread/process/task is ID and count indicating that the subsystem/thread/process/task is advancing through its service loop advancing through its service loop -- often referred to as a heartbeat often referred to as a heartbeat as well.as well.

KernelKernel -- the software in Linux which directly controls all critical the software in Linux which directly controls all critical resources such as CPU, memory, and device I/O resources such as CPU, memory, and device I/O -- the kernel is the kernel is typically interfaced to by applications through drivers, system call typically interfaced to by applications through drivers, system call traps, and mapped interfaces like /proc only. All kernel code traps, and mapped interfaces like /proc only. All kernel code executes in a privileged CPU mode and is protected from user code executes in a privileged CPU mode and is protected from user code

Sam SiewertSam Siewert 3333

executes in a privileged CPU mode and is protected from user code executes in a privileged CPU mode and is protected from user code by the MMU.by the MMU.

Kernel ImageKernel Image -- the Linux bootable system image including the the Linux bootable system image including the scheduler and linkedscheduler and linked--in drivers.in drivers.

Kernel InstrumentationKernel Instrumentation -- tools like LTT which provide active tracing tools like LTT which provide active tracing of C code and/or kernel eventsof C code and/or kernel events..

KernalKernal Module Module –– A dynamically linked object code module in Linux A dynamically linked object code module in Linux which can be loaded and linked into kernel space (with which can be loaded and linked into kernel space (with insmodinsmod) for ) for execution in kernel space to extend the kernel or provide an IO execution in kernel space to extend the kernel or provide an IO driver function.driver function.

Page 34: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

L1 CacheL1 Cache -- Level 1 Cache, a highLevel 1 Cache, a high--speed memory integrated onspeed memory integrated on--chip with a chip with a CPU core CPU core -- on the same ASIC for data access that can most often be on the same ASIC for data access that can most often be completed in a single clock.completed in a single clock.

L2 CacheL2 Cache -- Level 2 Cache, a high speed memory offLevel 2 Cache, a high speed memory off--chip which can be chip which can be accessed in several clocks.accessed in several clocks.

LatencyLatency -- delay in an operation or process due to physical limitations such delay in an operation or process due to physical limitations such as electronic propagation delay, the speed of light, the number of clock as electronic propagation delay, the speed of light, the number of clock cycles required to execute instructions, or time to modify a physical memory cycles required to execute instructions, or time to modify a physical memory device.device.

LaxityLaxity -- Laxity = (TimeLaxity = (Time--toto--Deadline Deadline -- TimeTime--toto--Completion), but the time to Completion), but the time to

Sam SiewertSam Siewert 3434

LaxityLaxity -- Laxity = (TimeLaxity = (Time--toto--Deadline Deadline -- TimeTime--toto--Completion), but the time to Completion), but the time to the completion of a service can be difficult to determine, so most often an the completion of a service can be difficult to determine, so most often an estimate of the Timeestimate of the Time--toto--Completion is used which is derived from (WCET Completion is used which is derived from (WCET --ComputationComputation--TimeTime--SoSo--Far). Far).

Layered DriverLayered Driver -- a layered driver includes distinct code modules which a layered driver includes distinct code modules which communicate only through (registered) functions in a well defined API communicate only through (registered) functions in a well defined API where each module is potentially a separately loadable kernel module in where each module is potentially a separately loadable kernel module in Linux.Linux.

Page 35: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

LCD LCD –– a liquid a liquid crystal display crystal display is is a thin, flat electronic visual display that uses the light a thin, flat electronic visual display that uses the light modulating properties of liquid crystals (LCs). LCs do not emit light directly, modulating properties of liquid crystals (LCs). LCs do not emit light directly, but rather but rather made made up of any number of pixels filled with liquid up of any number of pixels filled with liquid crystals arrayed crystals arrayed in front of a light in front of a light source source or reflector to produce images in or reflector to produce images in color color or monochromeor monochrome. . LCD projectors use LCD projectors use transmissivetransmissive LCD LCD chips, allowing light to pass through the liquid crystal.chips, allowing light to pass through the liquid crystal.

LCMLCM -- Least Common Multiple, the LCM is the smallest number which is also multiple of 2 Least Common Multiple, the LCM is the smallest number which is also multiple of 2 different numbers different numbers -- e.g. given x=3, y=5, the LCM(e.g. given x=3, y=5, the LCM(x,yx,y)=15. This concept is key to periodic )=15. This concept is key to periodic service analysis in realservice analysis in real--time theory because it is necessary to diagram service times over time theory because it is necessary to diagram service times over the LCM of all periods in order to fully analyze timing demands upon a resource. Note that the LCM of all periods in order to fully analyze timing demands upon a resource. Note that the LCM for numbers that are prime can be very large compared to harmonic numbersthe LCM for numbers that are prime can be very large compared to harmonic numbers..

LCoSLCoS -- Liquid crystal on silicon is a microLiquid crystal on silicon is a micro--display technology typically applied in projection display technology typically applied in projection televisions, a reflective technology similar to DLP, however, it uses liquid crystals instead of televisions, a reflective technology similar to DLP, however, it uses liquid crystals instead of individual mirrors. In individual mirrors. In LCoSLCoS, liquid crystals are applied directly to the surface of a silicon , liquid crystals are applied directly to the surface of a silicon

Sam SiewertSam Siewert 3535

individual mirrors. In individual mirrors. In LCoSLCoS, liquid crystals are applied directly to the surface of a silicon , liquid crystals are applied directly to the surface of a silicon chip coated with an aluminized layer, with a chip coated with an aluminized layer, with a passivationpassivation layer, which is highly reflective. layer, which is highly reflective. LCoSLCoS technology can typically produce higher resolution and higher contrast images than technology can typically produce higher resolution and higher contrast images than standard liquid crystal display and plasma display technologies, which makes it less standard liquid crystal display and plasma display technologies, which makes it less expensive to implement in such devices as televisions.expensive to implement in such devices as televisions.

Least Laxity First (LLF) Least Laxity First (LLF) -- a dynamic priority policy where services on the ready queue are a dynamic priority policy where services on the ready queue are assigned higher priority if their laxity is the least (where laxity is the time difference assigned higher priority if their laxity is the least (where laxity is the time difference between their deadline and remaining computation time) between their deadline and remaining computation time) -- this requires the scheduler to this requires the scheduler to know all outstanding service request times, their deadlines, the current time, remaining know all outstanding service request times, their deadlines, the current time, remaining computation time for all services, and to recomputation time for all services, and to re--assign priorities to all services on every assign priorities to all services on every preemption. Estimating remaining computation time for each service can be difficult and preemption. Estimating remaining computation time for each service can be difficult and typically requires a worsttypically requires a worst--case approximation.case approximation.

LehoczkyLehoczky, , ShaSha, and Ding Theorem (, and Ding Theorem (a.k.aa.k.a Theorem 2)Theorem 2) -- If a set of services can be If a set of services can be scheduled over the period of the longest period service after a scheduled over the period of the longest period service after a critical instantcritical instant, then the , then the system is feasible (i.e. is guaranteed not to miss a deadline in the future).system is feasible (i.e. is guaranteed not to miss a deadline in the future).

Page 36: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

LinkingLinking (Dynamic or Static) (Dynamic or Static) -- Linking is the process by which an Linking is the process by which an executable image is assigned addresses for all function entry points, executable image is assigned addresses for all function entry points, all global variables, and all constants which may be referenced by all global variables, and all constants which may be referenced by other software modules other software modules -- these addresses can be statically assigned these addresses can be statically assigned once and for all at a preonce and for all at a pre--determined offset in physical memory (static determined offset in physical memory (static linking) or may be position independent such that only relative linking) or may be position independent such that only relative addresses are assigned until the module is loaded, at which time addresses are assigned until the module is loaded, at which time physical addresses are derived from the relative (dynamic linking). physical addresses are derived from the relative (dynamic linking).

LiveLive--locklock -- related to deadlock, this situation arises when a circular related to deadlock, this situation arises when a circular

Sam SiewertSam Siewert 3636

LiveLive--locklock -- related to deadlock, this situation arises when a circular related to deadlock, this situation arises when a circular wait for resources evolves and an attempt to break the deadlock is wait for resources evolves and an attempt to break the deadlock is made by having each requester drop their requests and then remade by having each requester drop their requests and then re--request them request them -- if the requests are well synchronized, then the if the requests are well synchronized, then the system may cycle between deadlock and dropping requests over system may cycle between deadlock and dropping requests over and over. and over.

Page 37: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

LSPLSP -- Linux Support Package, an embedded Linux term, much like Linux Support Package, an embedded Linux term, much like

a BSP, which refers to code required to boot Linux on a given a BSP, which refers to code required to boot Linux on a given

architecture and platform architecture and platform -- e.g. the PowerPC 750 LSP.e.g. the PowerPC 750 LSP.

LTTLTT –– Linux Trace Toolkit Linux Trace Toolkit –– a tool that traces events in the Linux a tool that traces events in the Linux

kernel, encodes them, and stores a trace of event codes in memory. kernel, encodes them, and stores a trace of event codes in memory.

The event trace can be loaded later into a tool for timing analysisThe event trace can be loaded later into a tool for timing analysis..

Luminance Luminance -- a photometric measure of the luminous intensity per a photometric measure of the luminous intensity per

unit area of light travelling in a given direction. It describes the unit area of light travelling in a given direction. It describes the

Sam SiewertSam Siewert 3737

unit area of light travelling in a given direction. It describes the unit area of light travelling in a given direction. It describes the

amount of light that passes through or is emitted from a particular amount of light that passes through or is emitted from a particular

area, and falls within a given solid angle. The SI unit for luminance area, and falls within a given solid angle. The SI unit for luminance

is candela per square is candela per square meter meter ((cdcd/m/m22).).

Page 38: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Memory HierarchyMemory Hierarchy -- the whole memory system design from the the whole memory system design from the

fastest and typically smallest devices to the slowest and typically fastest and typically smallest devices to the slowest and typically

largest devices largest devices -- e.g. L1/L2 cache, main memory, and flash.e.g. L1/L2 cache, main memory, and flash.

Memory Mapped I/OMemory Mapped I/O -- I/O devices which can be read or written can I/O devices which can be read or written can

be mapped into the address space of a processor allowing software be mapped into the address space of a processor allowing software

to simply update an address in order to write to the device or read to simply update an address in order to write to the device or read

an address to read from the device an address to read from the device -- the device must respond to the the device must respond to the

addressing by the CPU, I.e. decode it and then read/write data on a addressing by the CPU, I.e. decode it and then read/write data on a

Sam SiewertSam Siewert 3838

bus which both the device and CPU interface with. bus which both the device and CPU interface with.

MmapMmap –– In Linux this means associating a range of userIn Linux this means associating a range of user--space space

addresses to device memory using /dev/addresses to device memory using /dev/memmem, which can be , which can be

observed in Linux by “cat /proc/observed in Linux by “cat /proc/iomemiomem” for example. For ” for example. For

performance critical applications like video card interfaces, performance critical applications like video card interfaces, mmapmmap

can make device access by user applications much more efficient.can make device access by user applications much more efficient.

Page 39: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Memory ProtectionMemory Protection -- an an MMUMMU feature which allows address ranges feature which allows address ranges

on page boundaries (a minimum size memory block) to be specified on page boundaries (a minimum size memory block) to be specified

as readas read--only only -- if an update to such a range is attempted, the if an update to such a range is attempted, the MMUMMU

will assert an will assert an NMINMI exception.exception.

Message QueueMessage Queue –– a POSIX mechanism which provides a message a POSIX mechanism which provides a message

FIFO, with priority if desired, and atomic enFIFO, with priority if desired, and atomic en--queue and dequeue and de--queue of queue of

messages within threads of execution in a process. messages within threads of execution in a process.

Message Sequence ChartMessage Sequence Chart -- a diagramming method used in the a diagramming method used in the

Sam SiewertSam Siewert 3939

Message Sequence ChartMessage Sequence Chart -- a diagramming method used in the a diagramming method used in the

Specification and Design Language (SDL) as well as UML Specification and Design Language (SDL) as well as UML

(Universal Modeling Language) which shows threads of execution (Universal Modeling Language) which shows threads of execution

and all messages (or function call interfaces) which associate the and all messages (or function call interfaces) which associate the

threads in a protocol.threads in a protocol.

Page 40: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

MicroMicro--codecode -- machine code which executes on a state machine internal to a machine code which executes on a state machine internal to a processor or on a simple state machine device that is independent of the main processor or on a simple state machine device that is independent of the main execution pipeline execution pipeline -- e.g. the Bt878 RISC processor executes code fetched from e.g. the Bt878 RISC processor executes code fetched from the x86 processor’s memory over the PCI bus the x86 processor’s memory over the PCI bus -- this code is microthis code is micro--code from the code from the viewpoint of the x86 system.viewpoint of the x86 system.

MicroMicro--parallelismparallelism -- parallel processing inside the CPU coreparallel processing inside the CPU core..

MIMD MIMD -- Multiple Instruction Multiple Data processing in Flynn’s architecture Multiple Instruction Multiple Data processing in Flynn’s architecture types such as distributed systems, clusters with message passing, and in types such as distributed systems, clusters with message passing, and in general any AMP (general any AMP (AysmmeticAysmmetic MultiMulti--Processor) or SMP (Symmetric MultiProcessor) or SMP (Symmetric Multi--Processor) CPU with more than one core.Processor) CPU with more than one core.

MISD MISD –– Multiple Instruction Single Data processing Flynn architecture type, e.g. Multiple Instruction Single Data processing Flynn architecture type, e.g.

Sam SiewertSam Siewert 4040

MISD MISD –– Multiple Instruction Single Data processing Flynn architecture type, e.g. Multiple Instruction Single Data processing Flynn architecture type, e.g. TMR (Triple Mode Redundancy) voting TMR (Triple Mode Redundancy) voting schemes and activeschemes and active--active active controllers controllers used for high availability.used for high availability.

MMUMMU -- Memory Management Unit, a block in most CPU cores which provides Memory Management Unit, a block in most CPU cores which provides virtual to physical address mapping, address range checking, and can protect virtual to physical address mapping, address range checking, and can protect readread--only address ranges from unintentional updateonly address ranges from unintentional update..

MMX MMX –– MultiMulti--Media Extensions, a singleMedia Extensions, a single--instruction, multipleinstruction, multiple--data instruction set data instruction set designed by Intel designed by Intel ..

MPMD MPMD –– MultiMulti--Program Program MutlipleMutliple Data, a find distinction in MIMD whereby more Data, a find distinction in MIMD whereby more than one GPthan one GP--GPU kernel (program) executes GPU kernel (program) executes vectorizedvectorized instructions in parallel.instructions in parallel.

Module LoadingModule Loading -- when an when an ELFELF module is loaded and dynamically linked into module is loaded and dynamically linked into the kernel during run time using “the kernel during run time using “insmodinsmod”.”.

Page 41: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

MPEG MPEG –– Motion Picture Motion Picture Expert’s Group, formed by Expert’s Group, formed by ISO (International Standards ISO (International Standards Organization) Organization) and and IEC (International IEC (International ElectrotechnicalElectrotechnical Commission) Commission) to set to set standards for standards for digital audio digital audio and video compression and and video compression and transmission, established transmission, established in in 1988.1988.

MPEG2 MPEG2 -- a standard for a standard for "generic "generic coding of moving pictures and associated coding of moving pictures and associated audio audio information, which describes information, which describes a combination of a combination of lossylossy video compression video compression and and lossylossy audio data compression methods which permit storage and audio data compression methods which permit storage and transmission of movies using currently available storage media and transmission of movies using currently available storage media and transmission bandwidthtransmission bandwidth. Commonly used for DVD (Digital Video or Versatile . Commonly used for DVD (Digital Video or Versatile Disc) and DVB (Digital Video Broadcast), ISO/IEC Standard 13818 with 11 parts Disc) and DVB (Digital Video Broadcast), ISO/IEC Standard 13818 with 11 parts for definition of specific features (e.g. part 2 = Video, part 3 = Audio).for definition of specific features (e.g. part 2 = Video, part 3 = Audio).

MPEG4 MPEG4 –– methods for methods for compression of compression of audio audio and visual (AV) digital and visual (AV) digital data data introduced introduced in late 1998 in late 1998 mad a set of standards for mad a set of standards for a group of audio and video a group of audio and video coding formats and related technology agreed upon by the ISO/IEC Moving coding formats and related technology agreed upon by the ISO/IEC Moving

Sam SiewertSam Siewert 4141

introduced introduced in late 1998 in late 1998 mad a set of standards for mad a set of standards for a group of audio and video a group of audio and video coding formats and related technology agreed upon by the ISO/IEC Moving coding formats and related technology agreed upon by the ISO/IEC Moving Picture Experts Group (MPEG) Picture Experts Group (MPEG) as the as the formal standard ISO/IEC 14496 formal standard ISO/IEC 14496 . . Uses of Uses of MPEGMPEG--4 include compression of AV data for web (streaming media) 4 include compression of AV data for web (streaming media) , , voice voice (telephone, videophone) and broadcast television applications(telephone, videophone) and broadcast television applications. Specific parts of . Specific parts of the 14496 standard include: the 14496 standard include: MPEGMPEG--4 part 10 (MPEG4 part 10 (MPEG--4 AVC/H.264 or Advanced 4 AVC/H.264 or Advanced Video Video Coding) and 26 more parts including 3D graphics.Coding) and 26 more parts including 3D graphics.

MPTS MPTS –– Multi Program Transport Stream, is a standard format for transmission Multi Program Transport Stream, is a standard format for transmission and storage of audio, video, and data, and is used in broadcast systems such and storage of audio, video, and data, and is used in broadcast systems such as DVB and ATSC. The Transport Stream is specified in MPEGas DVB and ATSC. The Transport Stream is specified in MPEG--2 Part 1, 2 Part 1, Systems (13818Systems (13818--1). Transport stream specifies a container format 1). Transport stream specifies a container format encapsulating packetized elementary streams, with error correction and stream encapsulating packetized elementary streams, with error correction and stream synchronization features for maintaining transmission integrity when the signal is synchronization features for maintaining transmission integrity when the signal is degraded.degraded.

Page 42: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

MultiMulti--access Networkaccess Network -- a network such as a network such as ethernetethernet where more than where more than one device can use the physical and link layer of the network, thus one device can use the physical and link layer of the network, thus requiring a requiring a CSMA/CDCSMA/CD protocol for shared useprotocol for shared use..

MultiMulti--taskingtasking -- when a CPU is shared and multiplexed by a scheduler when a CPU is shared and multiplexed by a scheduler in order that multiple threads with state information may execute on a in order that multiple threads with state information may execute on a single CPU or may be mapped onto a set of CPUs dynamically. Tasks single CPU or may be mapped onto a set of CPUs dynamically. Tasks include state information that goes beyond the minimal requirements of include state information that goes beyond the minimal requirements of register state, stack, and PC for a thread register state, stack, and PC for a thread -- e.g. task variables, a task e.g. task variables, a task error indicator, name, and many other elements of a error indicator, name, and many other elements of a VxWorksVxWorks TCBTCB..

MultiMulti--threadedthreaded -- when a CPU is shared and multiplexed by a scheduler when a CPU is shared and multiplexed by a scheduler with the minimal management of execution state for each thread of with the minimal management of execution state for each thread of

Sam SiewertSam Siewert 4242

with the minimal management of execution state for each thread of with the minimal management of execution state for each thread of execution (register state, stack, and PCexecution (register state, stack, and PC).).

MutexMutex SemaphoreSemaphore -- a specialized semaphore (compared to a binary a specialized semaphore (compared to a binary semaphore) which is specifically used to protect critical sections of code semaphore) which is specifically used to protect critical sections of code for multifor multi--thread safety thread safety -- this semaphore is used to guarantee mutually this semaphore is used to guarantee mutually exclusive access to a shared resource such that only one thread may exclusive access to a shared resource such that only one thread may access a common resource at a time access a common resource at a time -- with shared memory this with shared memory this prevents data corruption that could be caused by multiple prevents data corruption that could be caused by multiple readers/writers readers/writers -- e.g. if a writer has partially updated a shared data e.g. if a writer has partially updated a shared data structure, is preempted/interrupted, and then a reader accessed the structure, is preempted/interrupted, and then a reader accessed the partially updated data, the data may be completely inconsistent.partially updated data, the data may be completely inconsistent.

Page 43: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Necessary and SufficientNecessary and Sufficient -- a feasibility test in reala feasibility test in real--time theory which will time theory which will pass all service sets that can be scheduled and will never fail a set that can pass all service sets that can be scheduled and will never fail a set that can be scheduled (more precise than a sufficient test which may falsely reject be scheduled (more precise than a sufficient test which may falsely reject some service sets, but will never falsely ok a service set than can not be some service sets, but will never falsely ok a service set than can not be safely scheduled).safely scheduled).

Nerd Nerd –– may be based on a creature portrayed in may be based on a creature portrayed in If I Ran the ZooIf I Ran the Zoo by Dr. by Dr. SeussSeuss:: an unstylish, unattractive, or socially inept person; one slavishly an unstylish, unattractive, or socially inept person; one slavishly devoted to intellectualism or academics to the point of their own detriment.devoted to intellectualism or academics to the point of their own detriment.

NestingNesting -- when a construct is used inside the same sort of construct when a construct is used inside the same sort of construct -- one one inside the other inside the other -- e.g. if a critical section encloses another critical section the e.g. if a critical section encloses another critical section the

Sam SiewertSam Siewert 4343

inside the other inside the other -- e.g. if a critical section encloses another critical section the e.g. if a critical section encloses another critical section the critical sections are said to be nested.critical sections are said to be nested.

NonNon--BlockingBlocking -- when a request for a resource can not be met immediately, when a request for a resource can not be met immediately, the scheduler can either block the calling thread until it is available or return the scheduler can either block the calling thread until it is available or return it an error code indicating why the request can not be met and letting the it an error code indicating why the request can not be met and letting the thread go on thread go on -- the latter is nonthe latter is non--blocking.blocking.

NonNon--PreemptivePreemptive –– when all threads run to completion without interruption when all threads run to completion without interruption by other requests for service or the scheduler during execution.by other requests for service or the scheduler during execution.

NPTL NPTL –– Native POSIX Threads Library Native POSIX Threads Library -- threads created by the user (via threads created by the user (via

pthread_createpthread_create) correspond directly to schedulable entities in the kernel) correspond directly to schedulable entities in the kernel

rather than a user space scheduling mechanism.rather than a user space scheduling mechanism.

Page 44: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

NTSCNTSC -- National Television Systems Council, the standard for National Television Systems Council, the standard for

analog color television transmission with 640x480 pixels. analog color television transmission with 640x480 pixels. NTSC was NTSC was

originally grayscale only, with an even/odd interlaced CRT originally grayscale only, with an even/odd interlaced CRT rasteringrastering

scheme to illuminate the pixels with a given luminosity. Color scheme to illuminate the pixels with a given luminosity. Color

information was added to the blackinformation was added to the black--andand--white image by adding a white image by adding a

color subcarrier of 4.5 color subcarrier of 4.5 ×× 455/572455/572 MHz (approximately 3.58MHz (approximately 3.58 MHz) to MHz) to

the video signal. To reduce the visibility of interference between the the video signal. To reduce the visibility of interference between the

chrominance signal and FM sound carrier required a slight reduction chrominance signal and FM sound carrier required a slight reduction

of the frame rate from 30 frames per second to 30/1.001 of the frame rate from 30 frames per second to 30/1.001

Sam SiewertSam Siewert 4444

of the frame rate from 30 frames per second to 30/1.001 of the frame rate from 30 frames per second to 30/1.001

(approximately 29.97) frames per (approximately 29.97) frames per secondsecond..

Object CodeObject Code -- machine code annotated with symbol information machine code annotated with symbol information

(variable and function names and addresses) and information to (variable and function names and addresses) and information to

support debugging (source file names and locations).support debugging (source file names and locations).

Page 45: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

OffloadingOffloading -- the concept of taking a software service and rethe concept of taking a software service and re--

allocating it to a hardware implementation on a parallel processing allocating it to a hardware implementation on a parallel processing

unit in order to free the main CPU of loading unit in order to free the main CPU of loading -- e.g. a network e.g. a network

interface card may perform functions basic to TCP/IP such as interface card may perform functions basic to TCP/IP such as

checksums in order to offload those operations from the host CPU.checksums in order to offload those operations from the host CPU.

OnOn--line Admissionline Admission -- when a system can run a feasibility test while when a system can run a feasibility test while

currently providing other services in order to determine whether new currently providing other services in order to determine whether new

services can safely be added to the current safe set.services can safely be added to the current safe set.

Sam SiewertSam Siewert 4545

OnOn--Off ControlOff Control -- the use of relays to turn on and off motors to the use of relays to turn on and off motors to

control a mechanical device.control a mechanical device.

Optimal Optimal PolicyPolicy -- a fixed priority assignment policy which will a fixed priority assignment policy which will

successfully schedule any set of services which can be scheduled successfully schedule any set of services which can be scheduled

by any other fixed priority policy.by any other fixed priority policy.

Page 46: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

OLED OLED -- organic light emitting diode is a lightorganic light emitting diode is a light--emitting diode (LED) in which the emitting diode (LED) in which the emissive electroluminescent layer is a film of organic compounds which emit emissive electroluminescent layer is a film of organic compounds which emit light in response to an electric current. This layer of organic semiconductor light in response to an electric current. This layer of organic semiconductor material is situated between two electrodes. OLEDs are used in television material is situated between two electrodes. OLEDs are used in television screens, computer monitors, small, portable system screens such as smart screens, computer monitors, small, portable system screens such as smart phones, advertising, information and digital signage.phones, advertising, information and digital signage.

OverOver--run run PolicyPolicy -- how a system handles a service which attempts to continue how a system handles a service which attempts to continue execution beyond its advertised deadline execution beyond its advertised deadline -- e.g. the scheduler could terminate e.g. the scheduler could terminate the service.the service.

Packet SwitchedPacket Switched -- a network protocol which allows links to be shared by a network protocol which allows links to be shared by multiple datagram or virtual circuit protocols and routes packets between endmultiple datagram or virtual circuit protocols and routes packets between end--points based upon their header information.points based upon their header information.

Sam SiewertSam Siewert 4646

points based upon their header information.points based upon their header information.

PC (program counter)PC (program counter) -- The Program Counter is normally a register used by a The Program Counter is normally a register used by a CPU to track the current or next address of main memory which contains a CPU to track the current or next address of main memory which contains a machine instruction to execute. (Note that a trace of the PC over time provides machine instruction to execute. (Note that a trace of the PC over time provides the definition of the the definition of the thread of executionthread of execution until a until a context switchcontext switch occurs, if it does at occurs, if it does at all).all).

PCI PCI -- Peripheral Component Interconnect, a standard defined by the PCI Peripheral Component Interconnect, a standard defined by the PCI Special Interest Group to provide CPU, memory, and IO device interconnection Special Interest Group to provide CPU, memory, and IO device interconnection for data transport.for data transport.

PCI Bus ProbingPCI Bus Probing -- A process that allows a BIOS or OS software to find all PCI A process that allows a BIOS or OS software to find all PCI devices and functions on a given PCI bus using configuration space registers.devices and functions on a given PCI bus using configuration space registers.

Page 47: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

PCI Configuration SpacePCI Configuration Space -- A well known port address on x86 architecture A well known port address on x86 architecture

where a PCI bus master can read/write registers in order to find other PCI where a PCI bus master can read/write registers in order to find other PCI

devices and their functions and configure them as far as memory mapping devices and their functions and configure them as far as memory mapping

and interrupts as a minimum.and interrupts as a minimum.

PCI Interrupt RoutingPCI Interrupt Routing -- PCI interrupts APCI interrupts A--D can be routed onto x86 legacy D can be routed onto x86 legacy

interrupts IRQ0interrupts IRQ0--15 in order to allow PCI devices to interrupt an x86 core.15 in order to allow PCI devices to interrupt an x86 core.

PCIPCI--ExpressExpress -- previously known as 3GIO, this standard is a scalable previously known as 3GIO, this standard is a scalable

differential serial bus architecture for 2.5 differential serial bus architecture for 2.5 GbpsGbps mainmain--board interconnection board interconnection

and peripheral connection. and peripheral connection.

PCM PCM -- PulsePulse--code modulation is a method used to digitally represent code modulation is a method used to digitally represent

sampled analog signals, which was invented by Alec Reeves in 1937. It is sampled analog signals, which was invented by Alec Reeves in 1937. It is

the standard form for digital audio in computers and the standard form for digital audio in computers and BluBlu--ray, Compact Disc ray, Compact Disc

Sam SiewertSam Siewert 4747

the standard form for digital audio in computers and the standard form for digital audio in computers and BluBlu--ray, Compact Disc ray, Compact Disc

and DVD formats, as well as other uses such as digital telephone systems. and DVD formats, as well as other uses such as digital telephone systems.

A PCM stream is a digital representation of an analog signal, in which the A PCM stream is a digital representation of an analog signal, in which the

magnitude of the analogue signal is sampled regularly at uniform intervals, magnitude of the analogue signal is sampled regularly at uniform intervals,

with each sample being quantized to the nearest value within a range of with each sample being quantized to the nearest value within a range of

digital steps. PCM streams have two basic properties that determine their digital steps. PCM streams have two basic properties that determine their

fidelity to the original analog signal: the sampling rate, which is the number fidelity to the original analog signal: the sampling rate, which is the number

of times per second that samples are taken; and the of times per second that samples are taken; and the bit depthbit depth, which , which

determines the number of possible digital values that each sample can take.determines the number of possible digital values that each sample can take.

Page 48: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Period JitterPeriod Jitter -- when the period of a service request is not constant.when the period of a service request is not constant.

Period TransformPeriod Transform -- a reala real--time theory adjustment to service time theory adjustment to service

characteristics to simplify analysis or to elevate importance of a characteristics to simplify analysis or to elevate importance of a

service whereby the service period is assumed to be shorter than it service whereby the service period is assumed to be shorter than it

really isreally is..

Pessimistic Pessimistic AssumptionAssumption -- RM is full of assumptions that are worst RM is full of assumptions that are worst case and therefore make it a very safe form of analysis, but also case and therefore make it a very safe form of analysis, but also may lead to excessive resource margin in order to guarantee may lead to excessive resource margin in order to guarantee deadlines deadlines -- e.g. e.g. WCETWCET..

Sam SiewertSam Siewert 4848

deadlines deadlines -- e.g. e.g. WCETWCET..

PP--Frame (MPEG) Frame (MPEG) –– predicted frame, can predicted frame, can use data from previous use data from previous frames to decompress and are more compressible than frames to decompress and are more compressible than II--framesframesand holds only the changes in the image from the previous and holds only the changes in the image from the previous frame. frame.

Pipeline Pipeline HazardHazard -- A condition in a CPU pipeline that forces it to stall A condition in a CPU pipeline that forces it to stall -- e.g. a cache miss.e.g. a cache miss.

Pipeline StallPipeline Stall -- when a CPU pipeline must stop until a resource is when a CPU pipeline must stop until a resource is made available.made available.

PIT PIT –– See Programmable Interval Timer.See Programmable Interval Timer.

Page 49: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

PixelPixel -- A picture element A picture element -- an array of picture elements forms an an array of picture elements forms an NxMNxM image where image where each pixel encodes the XY position, brightness and RGB color mix for the picture each pixel encodes the XY position, brightness and RGB color mix for the picture element in the imageelement in the image..

Plasma Display Plasma Display -- flat panel display common to large TV displays flat panel display common to large TV displays where the where the pixels pixels rely on plasma cells, rely on plasma cells, tiny fluorescent lamps in the compartmentalized tiny fluorescent lamps in the compartmentalized space between space between two panels of glass. These two panels of glass. These compartments hold compartments hold a mixture of noble gases and a a mixture of noble gases and a minuscule amount of minuscule amount of mercury and when mercury and when the mercury is vaporized the mercury is vaporized when a voltage when a voltage is is applied across the cell, the gas in the cells form a plasma. With flow of applied across the cell, the gas in the cells form a plasma. With flow of electricity, electricity, some of the electrons strike mercury particles as the electrons move through the some of the electrons strike mercury particles as the electrons move through the plasma, momentarily increasing the energy level of the molecule until the excess plasma, momentarily increasing the energy level of the molecule until the excess energy is energy is shed as shed as ultraviolet (UV) ultraviolet (UV) photons that strike photons that strike phosphor that is painted on the phosphor that is painted on the inside of the inside of the cell, which raises cell, which raises the energy level of an outer orbit electron in the the energy level of an outer orbit electron in the phosphor phosphor which sheds which sheds the excess energy as a photon at a lower energy level than the excess energy as a photon at a lower energy level than

Sam SiewertSam Siewert 4949

phosphor phosphor which sheds which sheds the excess energy as a photon at a lower energy level than the excess energy as a photon at a lower energy level than UV light; the lower energy photons are mostly in the infrared range but about 40% are UV light; the lower energy photons are mostly in the infrared range but about 40% are in the visible light range. Thus the input energy is shed as mostly heat (infrared) but in the visible light range. Thus the input energy is shed as mostly heat (infrared) but also as visible light. Depending on the phosphors used, different colors of visible light also as visible light. Depending on the phosphors used, different colors of visible light can be achieved. Each pixel in a plasma display is made up of three cells comprising can be achieved. Each pixel in a plasma display is made up of three cells comprising the primary colors of visible light. Varying the voltage of the signals to the cells thus the primary colors of visible light. Varying the voltage of the signals to the cells thus allows different perceived colors.allows different perceived colors.

PointPoint--toto--PointPoint -- a network topology which connects nodes onea network topology which connects nodes one--toto--one.one.

PollingPolling -- when status is checked periodically (synchronously) by a looping construct.when status is checked periodically (synchronously) by a looping construct.

Polling Interrupt Service RoutinePolling Interrupt Service Routine -- an an ISRISR which must determine the source of an which must determine the source of an interrupt by reading status registers when a hardware interrupt is shared by multiple interrupt by reading status registers when a hardware interrupt is shared by multiple devices (note that most pollingdevices (note that most polling ISRsISRs also provide also provide ISR chainingISR chaining).).

Position Independent CodePosition Independent Code -- code which is base address independent such that it code which is base address independent such that it can be mapped in at any base address and all other entry points, jumps, and memory can be mapped in at any base address and all other entry points, jumps, and memory locations are set relative to the dynamically determined base address.locations are set relative to the dynamically determined base address.

Page 50: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

POSIXPOSIX -- Portable Operating Systems Interface, a standard for operating Portable Operating Systems Interface, a standard for operating system mechanisms and APIs. POSIX includes a number of subsystem mechanisms and APIs. POSIX includes a number of sub--standards standards such as 1003.1b which covers basic realsuch as 1003.1b which covers basic real--time mechanisms.time mechanisms.

PowerPower--on Reseton Reset -- a CPU state after initial powera CPU state after initial power--on, which most often on, which most often causes the CPU to branch to a known address and perform basic causes the CPU to branch to a known address and perform basic operations like resetting the memory controller, bus, and other basic operations like resetting the memory controller, bus, and other basic interfacesinterfaces..

PPM PPM –– Portable Pix Map, The Portable Pix Map, The portable portable pixmappixmap formatformat ((PPMPPM), the ), the portable portable graymapgraymap formatformat ((PGMPGM) and the ) and the portable bitmap formatportable bitmap format ((PBMPBM) ) are image file formats originally designed to be easily exchanged between are image file formats originally designed to be easily exchanged between platforms.platforms.

PreemptionPreemption -- when the current thread executing on a CPU is placed back when the current thread executing on a CPU is placed back on the ready queue by the scheduler and state information saved so that a on the ready queue by the scheduler and state information saved so that a different thread can be allocated the CPU.different thread can be allocated the CPU.

Sam SiewertSam Siewert 5050

on the ready queue by the scheduler and state information saved so that a on the ready queue by the scheduler and state information saved so that a different thread can be allocated the CPU.different thread can be allocated the CPU.

Predictable Response Predictable Response –– compared to compared to deterministicdeterministic response, predictable response, predictable means that the response behavior is bounded and characterized by a means that the response behavior is bounded and characterized by a statistical distribution of response times rather than having an invariant statistical distribution of response times rather than having an invariant response time.response time.

PriorityPriority -- an encoding which controls the order of dispatch for threads by a an encoding which controls the order of dispatch for threads by a scheduler when more than one is ready to use the CPU resource.scheduler when more than one is ready to use the CPU resource.

Priority CeilingPriority Ceiling -- a priority is defined that is the highest priority a thread can a priority is defined that is the highest priority a thread can have that may lock a resource, this priority level is stored as the resource’s have that may lock a resource, this priority level is stored as the resource’s priority ceiling priority ceiling -- a thread which has locked the resource is given priority as a thread which has locked the resource is given priority as high as the highest priority thread blocking on the resource up to the ceiling high as the highest priority thread blocking on the resource up to the ceiling value value -- i.e. the thread holding the resource always has a priority higher than i.e. the thread holding the resource always has a priority higher than or equal to all threads waiting to obtain the resource.or equal to all threads waiting to obtain the resource.

Page 51: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Priority Priority InheritanceInheritance -- If a thread is holding a resource and another If a thread is holding a resource and another

thread of higher priority is blocking on the same thread of higher priority is blocking on the same resrouceresrouce, the thread , the thread

holding the resource inherits the blocked threads priority for the holding the resource inherits the blocked threads priority for the

duration of the duration of the critical sectioncritical section. There is no limit on the priority level . There is no limit on the priority level

that may be inherited.that may be inherited.

Priority Inversion (Unbounded)Priority Inversion (Unbounded) -- whenever a thread is unable to whenever a thread is unable to

obtain the CPU and a thread of lower priority is holding it, this is obtain the CPU and a thread of lower priority is holding it, this is

called priority inversion. The condition is most often caused by a called priority inversion. The condition is most often caused by a

Sam SiewertSam Siewert 5151

secondary resource needed by a thread such as a shared memory secondary resource needed by a thread such as a shared memory

critical section critical section -- in a simple two thread case, if a lower priority thread in a simple two thread case, if a lower priority thread

is in a critical section, then a higher priority thread experiences is in a critical section, then a higher priority thread experiences

priority inversion for the duration of the critical section, however, if priority inversion for the duration of the critical section, however, if

the low priority thread suffers interference from a medium priority the low priority thread suffers interference from a medium priority

thread, the high priority thread could potentially be blocked for an thread, the high priority thread could potentially be blocked for an

indeterminate amount of time, an unbounded priority inversion.indeterminate amount of time, an unbounded priority inversion.

Page 52: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Priority Preemptive RunPriority Preemptive Run--toto--CompletionCompletion -- A scheduling mechanism which A scheduling mechanism which dispatches any thread ready to run based on priority as soon as the set of dispatches any thread ready to run based on priority as soon as the set of ready threads is updated (preemptive) and allows a dispatched thread to ready threads is updated (preemptive) and allows a dispatched thread to run indefinitely unless another higher priority thread is ready run indefinitely unless another higher priority thread is ready –– this can be this can be approximated in Linux using NPTL or kernel threads, but the Linux kernel is approximated in Linux using NPTL or kernel threads, but the Linux kernel is not fully not fully prepre--emptableemptable itself, so in Linux this is not fully deterministic and itself, so in Linux this is not fully deterministic and only soft realonly soft real--time systems should be built.time systems should be built.

Priority QueuePriority Queue -- A mechanism for implementing a firstA mechanism for implementing a first--inin--firstfirst--out policy, out policy, but with N levels of priority such that all items at the highest priority level are but with N levels of priority such that all items at the highest priority level are dede--queued first queued first firstfirst--inin--firstfirst--out before all items at the next lower priority out before all items at the next lower priority level. level.

ProcessProcess -- a thread of execution with stack, register state, and PC state a thread of execution with stack, register state, and PC state along with significant additional software state such as copies of all I/O along with significant additional software state such as copies of all I/O descriptors including a protected memory data descriptors including a protected memory data segment segment (protected from (protected from

Sam SiewertSam Siewert 5252

along with significant additional software state such as copies of all I/O along with significant additional software state such as copies of all I/O descriptors including a protected memory data descriptors including a protected memory data segment segment (protected from (protected from writes by other processes).writes by other processes).

Programmed IOProgrammed IO -- a technique where software reads and writes each word a technique where software reads and writes each word to and from a device interface involving the CPU in each and every transfer.to and from a device interface involving the CPU in each and every transfer.

Programmable Interval Timer (PIT) Programmable Interval Timer (PIT) –– A CPU core timer that can be A CPU core timer that can be loaded with a value to count down with a known decrement period so that loaded with a value to count down with a known decrement period so that when it reaches zero an interrupt is asserted and the counter optionally when it reaches zero an interrupt is asserted and the counter optionally reset automatically. In some cases it may count up to 0xFFFF_FFFF.reset automatically. In some cases it may count up to 0xFFFF_FFFF.

Protocol StackProtocol Stack -- a layered driver which includes data processing between a layered driver which includes data processing between the layers the layers -- each layer can be separated and has a distinct interface each layer can be separated and has a distinct interface -- e.g. e.g. TCP/IP.TCP/IP.

Page 53: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Pure FunctionPure Function –– a function coded so that it only uses stack (no global data a function coded so that it only uses stack (no global data at al), depends only in input parameters, and calls only other pure functionsat al), depends only in input parameters, and calls only other pure functionsis a pure function and is also is a pure function and is also thread safethread safe..

QAM QAM –– QuadratureQuadrature Amplitude Modulation, a modulation scheme used for Amplitude Modulation, a modulation scheme used for digital video carriers digital video carriers in digital cable systems; in digital cable systems; QAM QAM conveys two analog conveys two analog message signals, or two digital bit streams, by changing (message signals, or two digital bit streams, by changing (modulatingmodulating) the ) the amplitudes of two carrier waves, using the amplitudeamplitudes of two carrier waves, using the amplitude--shift keying (ASK) shift keying (ASK) digital modulation digital modulation scheme. These scheme. These two two sinusoidal waves are sinusoidal waves are out of phase out of phase with each other by 90with each other by 90°° and and are are called called quadraturequadrature carriers.carriers.

Quality Quality of Serviceof Service -- definition of service levels based upon guarantees of definition of service levels based upon guarantees of resource availability for each service resource availability for each service -- e.g. processor capacity can be e.g. processor capacity can be reserved for each service in advance (say 10%) and the system reserved for each service in advance (say 10%) and the system guarantees that this capacity will be available within in a worst case period guarantees that this capacity will be available within in a worst case period of time, however may not guarantee all services will meet their deadlinesof time, however may not guarantee all services will meet their deadlines..

Sam SiewertSam Siewert 5353

guarantees that this capacity will be available within in a worst case period guarantees that this capacity will be available within in a worst case period of time, however may not guarantee all services will meet their deadlinesof time, however may not guarantee all services will meet their deadlines..

RAMDAC RAMDAC -- Random Access Memory DigitalRandom Access Memory Digital--toto--Analog Converter , a Analog Converter , a combination of three fast DACs with a small SRAM used in computer combination of three fast DACs with a small SRAM used in computer graphics display adapters to store the graphics display adapters to store the colourcolour palette and to generate the palette and to generate the analog signals (usually a voltage amplitude) to drive a analog signals (usually a voltage amplitude) to drive a colourcolour monitor.monitor.

RAS RAS –– Reliability, Availability, Reliability, Availability, ServiceabilityServiceability

Raster Raster -- image or image or bitmapbitmap is a data structure representing a generally is a data structure representing a generally rectangular grid of pixels, or points of color, viewable via a monitor, paper, rectangular grid of pixels, or points of color, viewable via a monitor, paper, or other display medium. Raster images are stored in image files with or other display medium. Raster images are stored in image files with varying formats varying formats (e.g. PPM, the Portable Pixel Map).(e.g. PPM, the Portable Pixel Map).

Page 54: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Rate MonotonicRate Monotonic -- a hard reala hard real--time theory for fixed priority preemptive runtime theory for fixed priority preemptive run--toto--completion systems where priority is assigned according to service completion systems where priority is assigned according to service request period (higher priority for shorter period) and where feasibility of a request period (higher priority for shorter period) and where feasibility of a set of services can be determined by the RM least upper bound or an set of services can be determined by the RM least upper bound or an iterative test such as the completion test.iterative test such as the completion test.

Ready QueueReady Queue –– a FIFO queue of processes or threads that are ready to a FIFO queue of processes or threads that are ready to execute on the CPU in the case of a process or within a process scope in execute on the CPU in the case of a process or within a process scope in the case of a thread.the case of a thread.

RealReal--Time Time (System) (System) –– an event driven system (sensors provide input an event driven system (sensors provide input through through ADCsADCs) for which services provide computation to produce a ) for which services provide computation to produce a response (output to actuators interfaced with response (output to actuators interfaced with DACsDACs) before a deadline ) before a deadline

Sam SiewertSam Siewert 5454

response (output to actuators interfaced with response (output to actuators interfaced with DACsDACs) before a deadline ) before a deadline relative to the request for service. A hard realrelative to the request for service. A hard real--time system must never miss time system must never miss a deadline, but a soft or best effort system may be allowed to miss a deadline, but a soft or best effort system may be allowed to miss occasional deadlines. occasional deadlines.

RealReal--Time ClockTime Clock -- a hardware clock circuit which maintains an absolute a hardware clock circuit which maintains an absolute date and time (e.g. Gregorian or Julian date), often employing a batterydate and time (e.g. Gregorian or Julian date), often employing a battery--backed clock circuit and/or a method to synchronize with an external time backed clock circuit and/or a method to synchronize with an external time source such as Universal Coordinated Time.source such as Universal Coordinated Time.

RealReal--Time CorrectnessTime Correctness -- a reala real--time service must produce functionally time service must produce functionally correct outputs and also provide the outputs prior to a relative deadline to correct outputs and also provide the outputs prior to a relative deadline to be realbe real--time correcttime correct..

Page 55: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

ReRe--bootboot -- when a system is commanded or as a part of a recovery when a system is commanded or as a part of a recovery mode remode re--enters the boot code entry point causing reenters the boot code entry point causing re--initialization of initialization of memory, I/O interfaces, and rememory, I/O interfaces, and re--start of all services. start of all services.

RecoveryRecovery -- a key feature of a high availability system, this is the a key feature of a high availability system, this is the mechanism by which a system which is experiencing system failures mechanism by which a system which is experiencing system failures restarts those services. A system may need to start a recovery restarts those services. A system may need to start a recovery process for a number of reasons process for a number of reasons -- e.g. deadlock, priority inversion, e.g. deadlock, priority inversion, livelocklivelock, resource exhaustion. Often recovery is achieved by the , resource exhaustion. Often recovery is achieved by the hardware hardware watch dogwatch dog which reboots the system.which reboots the system.

Reentrant FunctionReentrant Function –– a reentrant function must be designed so that a reentrant function must be designed so that it can be called from multiple execution contexts (threads) and still it can be called from multiple execution contexts (threads) and still

Sam SiewertSam Siewert 5555

it can be called from multiple execution contexts (threads) and still it can be called from multiple execution contexts (threads) and still provide correct results. A reentrant function must either allocate provide correct results. A reentrant function must either allocate unique copies of global data for each execution context, provide unique copies of global data for each execution context, provide mutexmutex protection for global data, or avoid the use of global data protection for global data, or avoid the use of global data completely as a completely as a pure functionpure function..

Regression TestRegression Test -- rere--running a test to verify that features previously running a test to verify that features previously verified still work after bug fixes or feature addition verified still work after bug fixes or feature addition -- intended to intended to prevent unintentional interactions between software modifications prevent unintentional interactions between software modifications that might introduce new problemsthat might introduce new problems..

Page 56: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Reliable TransportReliable Transport -- a data transport protocol on a network which a data transport protocol on a network which includes error detection/correction, retransmission and supports diverse includes error detection/correction, retransmission and supports diverse routing such that overall data is delivered if at all possible.routing such that overall data is delivered if at all possible.Resource ArbiterResource Arbiter -- a suba sub--system which implements a resource grant system which implements a resource grant policy policy -- e.g. a e.g. a aa bus arbiter coordinates bus grants for bus requests bus arbiter coordinates bus grants for bus requests from multiple masters and targets.from multiple masters and targets.Response Response TimeTime -- the latency between a request for service (typically the latency between a request for service (typically by an ISR) and the generation of a response outputby an ISR) and the generation of a response output..

RGB (color model) RGB (color model) –– Red, Green, Blue intensity thought of as a cube Red, Green, Blue intensity thought of as a cube or 3D unit vector in RGB space that is mixed to form a palette of colors or 3D unit vector in RGB space that is mixed to form a palette of colors (e.g. 8(e.g. 8--bits per primary R, G, B value for a 24bits per primary R, G, B value for a 24--bit mixed resultant color) bit mixed resultant color) where a color pixel is the additive combination through the illumination where a color pixel is the additive combination through the illumination

Sam SiewertSam Siewert 5656

where a color pixel is the additive combination through the illumination where a color pixel is the additive combination through the illumination of three adjacent subof three adjacent sub--pixels for each raster pixel.pixels for each raster pixel.

Ring BufferRing Buffer -- a data structure which provides multiple serially reusable a data structure which provides multiple serially reusable buffers buffers -- most often used to buffer incoming data from a device most often used to buffer incoming data from a device interface before it can be processed interface before it can be processed -- likewise for output data before it likewise for output data before it can be transmitted.can be transmitted.

RISCRISC -- Reduced Instruction Set Computer.Reduced Instruction Set Computer.

RMRM-- Rate Rate MontonicMontonic, the basic theory formulated by Liu and , the basic theory formulated by Liu and LaylandLayland for for fixed priority multiplexing of a single CPU that is intended to provide fixed priority multiplexing of a single CPU that is intended to provide multiple services over timemultiple services over time..

Page 57: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

RMARMA -- Rate Monotonic Rate Monotonic Analysis,theAnalysis,the process of analyzing the process of analyzing the CC, , TT, and , and DDcharacteristics of a set of characteristics of a set of servicesservices to be executed on a CPU and to be executed on a CPU and determination of priorities according to determination of priorities according to RM policyRM policy and and feasibilityfeasibility according to according to a a sufficientsufficient or better yet, or better yet, necessary and sufficientnecessary and sufficient testtest..

RM RM Least Upper BoundLeast Upper Bound (a.k.a. Theorem One)(a.k.a. Theorem One) –– This bound derived from This bound derived from

)12()/(1

1

−≤=∑=

m

i

mmTiCiU

Sam SiewertSam Siewert 5757

RM RM Least Upper BoundLeast Upper Bound (a.k.a. Theorem One)(a.k.a. Theorem One) –– This bound derived from This bound derived from the critical time zone for a set of services released at a critical states that the critical time zone for a set of services released at a critical states that the sum of the service resource requirements must be less than m(2the sum of the service resource requirements must be less than m(21/m1/m--1) 1) where m is the number of services in the set.where m is the number of services in the set.

RM policyRM policy -- services with shorter period are assigned higher priority.services with shorter period are assigned higher priority.

Round RobinRound Robin -- a best effort scheme with preemptive timea best effort scheme with preemptive time--slicing where the slicing where the scheduler assigns threads a slice in a fair fashion where all ready threads scheduler assigns threads a slice in a fair fashion where all ready threads are given a slice of CPU and put back on the end of the queue if neededare given a slice of CPU and put back on the end of the queue if needed..

Page 58: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

SS--Video Video -- also called also called Y/C Y/C is is an analog video transmission scheme, in an analog video transmission scheme, in which video information is encoded on two channels: which video information is encoded on two channels: lumaluma (luminance, (luminance, intensity) and intensity) and chromachroma (color). The luminance (Y; gray(color). The luminance (Y; gray--scale) signal and scale) signal and chrominance (C; color) information are carried on separate, chrominance (C; color) information are carried on separate, synchronisedsynchronised signal and ground pairs; the color has to be encoded in signal and ground pairs; the color has to be encoded in some some way such as NTSC.way such as NTSC.

Scatter Scatter Write ListWrite List -- A list of not necessarily contiguous addresses in A list of not necessarily contiguous addresses in memory that are to be written from a contiguous buffer memory that are to be written from a contiguous buffer -- e.g. a host e.g. a host memory may have multiple blocks in memory scattered through memory may have multiple blocks in memory scattered through memory space that are updated by an I/O device which contains all of memory space that are updated by an I/O device which contains all of the data to be updated in a single contiguous buffer.the data to be updated in a single contiguous buffer.

Sam SiewertSam Siewert 5858

the data to be updated in a single contiguous buffer.the data to be updated in a single contiguous buffer.

SchedulerScheduler –– A kernel service loop which monitors the Ready Queue A kernel service loop which monitors the Ready Queue and will preempt and dispatch a task in place of the currently running and will preempt and dispatch a task in place of the currently running task according to priorities, providing a context switch. The scheduler is task according to priorities, providing a context switch. The scheduler is executed as a result of making a kernel API call from task and interrupt executed as a result of making a kernel API call from task and interrupt contexts and also executes in a polling mode when there are not other contexts and also executes in a polling mode when there are not other tasks to execute.tasks to execute.

Scheduling PointScheduling Point -- a necessary and sufficient test based upon the a necessary and sufficient test based upon the ShaSha, , LehoczkyLehoczky, and Ding theorem which determines whether all , and Ding theorem which determines whether all services can be scheduled within the longest period.services can be scheduled within the longest period.

SDRAMSDRAM -- Synchronous Dynamic Random Access Memory.Synchronous Dynamic Random Access Memory.

Page 59: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

SemaphoreSemaphore –– an OS mechanism which can be used for an OS mechanism which can be used for

synchronization of otherwise asynchronous tasks in order to synchronization of otherwise asynchronous tasks in order to

coordinate resource usage such as shared memory, or to simply coordinate resource usage such as shared memory, or to simply

indicate a condition such as data is available on an interface.indicate a condition such as data is available on an interface.

Semaphore TakeSemaphore Take -- a semaphore operation which allows a thread to a semaphore operation which allows a thread to

check and see if a resource is available check and see if a resource is available -- if not, the OS can either if not, the OS can either

block the calling thread until it is, or simply return an error code.block the calling thread until it is, or simply return an error code.

Semaphore GiveSemaphore Give -- a semaphore operation which allows a thread to a semaphore operation which allows a thread to

Sam SiewertSam Siewert 5959

Semaphore GiveSemaphore Give -- a semaphore operation which allows a thread to a semaphore operation which allows a thread to

indicate that a resource is available indicate that a resource is available -- if another thread is blocking on if another thread is blocking on

this resource, then this will unthis resource, then this will un--block that thread.block that thread.

SensorSensor -- a transducer device which indicates physical status of a a transducer device which indicates physical status of a

system or the environment in which it operates with an electrical system or the environment in which it operates with an electrical

signal to encode the system/environment characteristic it is signal to encode the system/environment characteristic it is

designed to measure designed to measure -- e.g. a e.g. a thermistorthermistor, a position encoder, limit , a position encoder, limit

switch, stress/strain gauge, pressure transducer, ...switch, stress/strain gauge, pressure transducer, ...

Page 60: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

ServiceService -- a specific computation provided for inputs which produces a specific computation provided for inputs which produces

required output in order to meet a system requirement. Realrequired output in order to meet a system requirement. Real--time time

systems include systems include periodicperiodic or or sporadicsporadic services that are requested on services that are requested on

a a periodicperiodic or or sporadicsporadic basis triggered by externally sensed events.basis triggered by externally sensed events.

Service ReleaseService Release -- when an external event sensed by an embedded when an external event sensed by an embedded

system indicates a request for service, the thread which provides the system indicates a request for service, the thread which provides the

service is released service is released -- e.g. an e.g. an ISRISR can do a semaphore give to can do a semaphore give to

indicate sensor data is available for processing.indicate sensor data is available for processing.

Set Associative CacheSet Associative Cache -- A A cachecache which allows main memory which allows main memory

addresses to be loaded in N different cache lines addresses to be loaded in N different cache lines -- a set associative a set associative

Sam SiewertSam Siewert 6060

addresses to be loaded in N different cache lines addresses to be loaded in N different cache lines -- a set associative a set associative

cache is said to be N ways, where each way is a different cache line cache is said to be N ways, where each way is a different cache line

which the same address data may be loaded which the same address data may be loaded -- e.g. 32 way set e.g. 32 way set

associative cache.associative cache.

Page 61: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Shared InterruptShared Interrupt -- when an interrupt can be asserted by multiple when an interrupt can be asserted by multiple devices, it is shared and requires the interrupt handler to poll status devices, it is shared and requires the interrupt handler to poll status --I.e. the handler must read the status of every device that may have I.e. the handler must read the status of every device that may have asserted the interrupt to figure out which device in fact did.asserted the interrupt to figure out which device in fact did.

Shared MemoryShared Memory -- when more than one thread on a single CPU or when more than one thread on a single CPU or on multiple CPUs can access the same memory locations, this on multiple CPUs can access the same memory locations, this memory is shared, and shared memory must be protected by a memory is shared, and shared memory must be protected by a synchronization mechanism if reads and writes are allowed. In synchronization mechanism if reads and writes are allowed. In Linux “Linux “shmshm” operations must be used to create shared memory ” operations must be used to create shared memory between processes which protect memory, but for threads within a between processes which protect memory, but for threads within a process, the memory owned by that process is inherently shared by process, the memory owned by that process is inherently shared by

Sam SiewertSam Siewert 6161

process, the memory owned by that process is inherently shared by process, the memory owned by that process is inherently shared by all threads owned by that same process.all threads owned by that same process.

Signal (Software) Signal (Software) --a software signal is often also called a software a software signal is often also called a software interrupt and in fact functions much like a hardware interrupt does interrupt and in fact functions much like a hardware interrupt does but at the scheduler/thread level but at the scheduler/thread level -- when a signal is thrown by one when a signal is thrown by one thread to another, the throw call causes the OS to potentially thread to another, the throw call causes the OS to potentially dispatch the catching thread’s handler instead of the code it is dispatch the catching thread’s handler instead of the code it is currently executing after the catch kernel code is executed currently executing after the catch kernel code is executed -- so, a so, a signal can be used to asynchronously interrupt a running thread.signal can be used to asynchronously interrupt a running thread.

Page 62: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Signal CatchSignal Catch -- when a signal is received by a thread by the OS scheduler on when a signal is received by a thread by the OS scheduler on behalf of the thread or process behalf of the thread or process -- the catch modifies the catching thread’s state the catch modifies the catching thread’s state such that the PC, registers, and stack are saved and when the thread is such that the PC, registers, and stack are saved and when the thread is dispatched next, the scheduler dispatches the threads registered signal handler dispatched next, the scheduler dispatches the threads registered signal handler rather than where it was last preempted.rather than where it was last preempted.

Signal ThrowSignal Throw -- when a thread wants to asynchronously interrupt the normal when a thread wants to asynchronously interrupt the normal flow of execution of another thread, it can call an OS mechanism to throw a flow of execution of another thread, it can call an OS mechanism to throw a signal to the other thread instructing the OS to dispatch the other thread’s signal signal to the other thread instructing the OS to dispatch the other thread’s signal handler rather than it’s last contexthandler rather than it’s last context..

SISD SISD -- Single Instruction Single Data Flynn architecture type, e.g. single core Single Instruction Single Data Flynn architecture type, e.g. single core traditional pipelined CPU.traditional pipelined CPU.

SIMD SIMD –– Single Instruction Multiple Data Flynn architecture type, e.g. a vector Single Instruction Multiple Data Flynn architecture type, e.g. a vector

Sam SiewertSam Siewert 6262

SIMD SIMD –– Single Instruction Multiple Data Flynn architecture type, e.g. a vector Single Instruction Multiple Data Flynn architecture type, e.g. a vector processor or processor or vectorizedvectorized instruction that applies on a string of operands rather instruction that applies on a string of operands rather than just one, such as 128than just one, such as 128--bit XOR on two operators on a 32bit XOR on two operators on a 32--bit architecture.bit architecture.

Slack TimeSlack Time -- on a realon a real--time system, when no realtime system, when no real--time services are requesting time services are requesting CPU time (I.e. waiting on the ready queue or actively running), this unused CPU CPU time (I.e. waiting on the ready queue or actively running), this unused CPU time is called slack time and often can be used for non realtime is called slack time and often can be used for non real--time best effort time best effort processing. Slack time is often created by service releases where the actual processing. Slack time is often created by service releases where the actual execution time taken is much shorter than WCET due to execution time taken is much shorter than WCET due to execution jitterexecution jitter..

SoCSoC -- System OnSystem On--aa--Chip, an ASIC which includes one or more CPU cores, a Chip, an ASIC which includes one or more CPU cores, a bus, and I/O interfaces such that it essentially places devices previously on a bus, and I/O interfaces such that it essentially places devices previously on a board in earlier products on a single ASIC.board in earlier products on a single ASIC.

Page 63: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Soft RealSoft Real--TimeTime -- when a service can occasionally miss a deadline and when a service can occasionally miss a deadline and overover--run it or terminate and drop a service release without system failure, run it or terminate and drop a service release without system failure, these services are considered soft these services are considered soft -- e.g. a video encoder compression and e.g. a video encoder compression and transport service might occasionally drop a frame when compression takes transport service might occasionally drop a frame when compression takes too long too long -- as long as the video stream is not critical and an occasional dropas long as the video stream is not critical and an occasional drop--out is acceptable out is acceptable w.r.tw.r.t. system requirements, this service can be considered . system requirements, this service can be considered a soft reala soft real--time service.time service.

Software ProfilingSoftware Profiling -- periodically tracing the cycle count and the current PC periodically tracing the cycle count and the current PC or actively tracing it by or actively tracing it by instrumentinginstrumenting all function entry and exit points to all function entry and exit points to save cycle count to a trace buffer allows for determination of where most of save cycle count to a trace buffer allows for determination of where most of the execution time is spent and how many cycles basic blocks of code such the execution time is spent and how many cycles basic blocks of code such as functions requires as functions requires -- this type of tracing provides a profile of the software. this type of tracing provides a profile of the software.

Sam SiewertSam Siewert 6363

as functions requires as functions requires -- this type of tracing provides a profile of the software. this type of tracing provides a profile of the software. Profiles can be at a function level, basic code block level (bounded by Profiles can be at a function level, basic code block level (bounded by branches) or at a C statement level branches) or at a C statement level -- overhead is higher for lower level overhead is higher for lower level profiling.profiling.

Software SanitySoftware Sanity -- software is said to be sane when embedded services software is said to be sane when embedded services check in with a sanity monitor by posting a keepcheck in with a sanity monitor by posting a keep--alive alive -- the sanity monitor the sanity monitor itself is known to be sane (functioning correctly) if it resets the hardware itself is known to be sane (functioning correctly) if it resets the hardware watchdog timer. watchdog timer.

SporadicSporadic –– and event that and event that occurs occasionally, singly, or in scattered occurs occasionally, singly, or in scattered instances, infrequently, without a deterministic period, but not instances, infrequently, without a deterministic period, but not aperiodicaperiodic..

Page 64: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

SRAMSRAM -- Static Random Access MemoryStatic Random Access Memory..

SSE SSE -- Streaming SIMD Extensions is a SIMD instruction set Streaming SIMD Extensions is a SIMD instruction set

extension to the x86 architecture, designed by Intel and introduced extension to the x86 architecture, designed by Intel and introduced

in 1999 in their Pentium series processors including 70 new in 1999 in their Pentium series processors including 70 new

instructions, which extended earlier MMX vector instruction set that instructions, which extended earlier MMX vector instruction set that

had two main problems: it rehad two main problems: it re--used existing floating point registers used existing floating point registers

making the CPU unable to work on both floating point and SIMD making the CPU unable to work on both floating point and SIMD

data at the same time, and it only worked on integers.data at the same time, and it only worked on integers.

Stack SegmentStack Segment -- a segment of memory allocated for a thread which a segment of memory allocated for a thread which

Sam SiewertSam Siewert 6464

Stack SegmentStack Segment -- a segment of memory allocated for a thread which a segment of memory allocated for a thread which

provides buffer space for function arguments and local variables provides buffer space for function arguments and local variables --

each application thread, the kernel thread, ISRs, and signal handlers each application thread, the kernel thread, ISRs, and signal handlers

typically all have their own stack space for the purpose of parameter typically all have their own stack space for the purpose of parameter

passing and local variable instantiation. In Linux a process stack passing and local variable instantiation. In Linux a process stack

can be grown dynamically with the can be grown dynamically with the sbrksbrk system call and is also done system call and is also done

automatically as needed within a process.automatically as needed within a process.

State MachineState Machine -- a formal design notation which includes a start a formal design notation which includes a start

state, state transitions driven by inputs made while in a specific state, state transitions driven by inputs made while in a specific

state, and outputs on transitionsstate, and outputs on transitions..

Page 65: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Stereo VisionStereo Vision -- the use of two cameras separated by a known the use of two cameras separated by a known constant distance to judge distances to objects of unknown physical constant distance to judge distances to objects of unknown physical dimensions through the use of triangulation.dimensions through the use of triangulation.

SuperscalarSuperscalar -- A A CPU pipelineCPU pipeline feature that employs parallel feature that employs parallel hardware within a single CPU core to allow for 2 or more instructions hardware within a single CPU core to allow for 2 or more instructions to be fetched, executed and retired concurrently. Note that this to be fetched, executed and retired concurrently. Note that this feature of a feature of a CPU pipelineCPU pipeline can yield a can yield a CPICPI less than 1.0 for the CPU less than 1.0 for the CPU core.core.

Symbol TableSymbol Table -- an array of function and global variable names and an array of function and global variable names and addresses where they are stored in their text and data segments addresses where they are stored in their text and data segments

Sam SiewertSam Siewert 6565

addresses where they are stored in their text and data segments addresses where they are stored in their text and data segments respectively.respectively.

SynchronousSynchronous -- An event or stimulus that occurs at a specific point An event or stimulus that occurs at a specific point in time relative to other events in the system rather than at any time in time relative to other events in the system rather than at any time -- e.g. a thread of execution can perform a e.g. a thread of execution can perform a semaphore takesemaphore take to to synchronize with an synchronize with an ISRISR -- the ISR will execute asynchronously, but the ISR will execute asynchronously, but the processing provided by the thread performing the semaphore the processing provided by the thread performing the semaphore take will be take will be synchronoussynchronous since it is known that this processing will since it is known that this processing will only be provided after the only be provided after the semaphore takesemaphore take AND the AND the semaphore givesemaphore giveperformed by the performed by the ISRISR..

Page 66: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Synchronous BusSynchronous Bus -- a bus that has clocked address, data, and control a bus that has clocked address, data, and control cycles.cycles.

System LifecycleSystem Lifecycle -- the process of turning an embedded system concept the process of turning an embedded system concept into a working maintained system. The steps potentially include: concept, into a working maintained system. The steps potentially include: concept, requirements, highrequirements, high--level design, detailed design, implementation of units level design, detailed design, implementation of units and subsystems, unit/subsystem test, integration, system test, acceptance and subsystems, unit/subsystem test, integration, system test, acceptance testing, fielding, maintenance, and unit/system regression testing.testing, fielding, maintenance, and unit/system regression testing.

System TestSystem Test -- endend--toto--end and feature tests performed after the units and end and feature tests performed after the units and subsystems in a larger system have been unit tested and are integrated for subsystems in a larger system have been unit tested and are integrated for the first time.the first time.

T (in RMA)T (in RMA) -- the period of a service request type. In many cases this will be the period of a service request type. In many cases this will be

Sam SiewertSam Siewert 6666

T (in RMA)T (in RMA) -- the period of a service request type. In many cases this will be the period of a service request type. In many cases this will be based upon the worst case frequency of the event(s) that cause a service to based upon the worst case frequency of the event(s) that cause a service to be released.be released.

Text Text Segment (Code Segment)Segment (Code Segment) -- a segment of memory used for storing a segment of memory used for storing the machine code associated with an application, kernel image, or boot the machine code associated with an application, kernel image, or boot image.image.

TFTPTFTP -- Trivial File Transfer Protocol, a simplified FTP (File Transfer Trivial File Transfer Protocol, a simplified FTP (File Transfer Protocol) which allows a client to download files from one known directory in Protocol) which allows a client to download files from one known directory in a file system.a file system.

Page 67: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Thread (of execution)Thread (of execution) -- a thread is simply the trace of a CPU’s a thread is simply the trace of a CPU’s PCPC over over time. Linux includes kernel threads and NPTL (Native POSIX Threads time. Linux includes kernel threads and NPTL (Native POSIX Threads Library). Kernel threads execute entirely in kernel space with kernel Library). Kernel threads execute entirely in kernel space with kernel privilege, subject to interrupt only by kernel interrupt service routines. NPTL privilege, subject to interrupt only by kernel interrupt service routines. NPTL threads run in user space within a process context in Linux, but are mapped threads run in user space within a process context in Linux, but are mapped onto kernel threads onto kernel threads –– the prethe pre--emptabilityemptability of a NPTL depends upon the of a NPTL depends upon the scheduling policy chosen scheduling policy chosen –– if it’s FIFO, then a such a thread acts much like if it’s FIFO, then a such a thread acts much like a true kernel thread, but in a user space process context. In the case of a true kernel thread, but in a user space process context. In the case of round robin, it time slices the processors allocated execution time with all round robin, it time slices the processors allocated execution time with all other threads in that same process.other threads in that same process.

Thread Safe Thread Safe –– code is thread safe only if it functions as expected when code is thread safe only if it functions as expected when executed simultaneously by multiple threads. A function that is designed to executed simultaneously by multiple threads. A function that is designed to

Sam SiewertSam Siewert 6767

executed simultaneously by multiple threads. A function that is designed to executed simultaneously by multiple threads. A function that is designed to be be reentrant reentrant or a or a pure functionpure function is thread safe. is thread safe.

ThroughputThroughput -- an aggregate measure of speed and efficiency for a device an aggregate measure of speed and efficiency for a device --e.g. for a processor the measure is MIPS (Millions of Instructions Per e.g. for a processor the measure is MIPS (Millions of Instructions Per Second) and for an I/O device the measure would be Mbps or Second) and for an I/O device the measure would be Mbps or GbpsGbps (Mega (Mega bits/sec or Giga bits/sec).bits/sec or Giga bits/sec).

TimeoutTimeout -- when making a blocking call, in order to avoid “wedging”, where when making a blocking call, in order to avoid “wedging”, where a thread is blocked indefinitely, it is most often advisable to specify a a thread is blocked indefinitely, it is most often advisable to specify a timeout for any blocking call at which time the thread will be asynchronously timeout for any blocking call at which time the thread will be asynchronously awoken and will continue awoken and will continue exeuctionexeuction -- this can be done by setting a timer this can be done by setting a timer that is set up to throw a signal to a timeout handler prior to making a that is set up to throw a signal to a timeout handler prior to making a blocking call if the API does not directly support a timeout option.blocking call if the API does not directly support a timeout option.

Page 68: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Timer ServicesTimer Services -- an interrupt handler set up by the OS which counts jiffies an interrupt handler set up by the OS which counts jiffies in the case of Linux on each interval timer interrupt and signals any threads in the case of Linux on each interval timer interrupt and signals any threads that have reached a timeout threshold.that have reached a timeout threshold.

TimeTime--sliceslice -- a unit of CPU called a quantum which can be allocated to a a unit of CPU called a quantum which can be allocated to a thread in a thread in a preemptablepreemptable best effort system best effort system -- in these systems timer services in these systems timer services often makes a call into the scheduler on each system tick in order to provide often makes a call into the scheduler on each system tick in order to provide quantum preemption quantum preemption –– so a quantum, and timeout resolution are typically all so a quantum, and timeout resolution are typically all the same the same -- e.g. Linux scheduling.e.g. Linux scheduling.

Top Half (TH)Top Half (TH) -- the Linux routine that actually responds to an interrupt and the Linux routine that actually responds to an interrupt and is registered with is registered with request_irqrequest_irq..

Sam SiewertSam Siewert 6868

is registered with is registered with request_irqrequest_irq..

TraceTrace -- a linear buffer with records that include time (cycle count) and state a linear buffer with records that include time (cycle count) and state information for a processor core and/or application code. information for a processor core and/or application code.

UnboundedUnbounded -- when a condition can persist for a nonwhen a condition can persist for a non--deterministic amount deterministic amount of time of time -- e.g. unbounded priority inversion where the set of middle level e.g. unbounded priority inversion where the set of middle level priority interference tasks may cause the inversion to persist for an arbitrary priority interference tasks may cause the inversion to persist for an arbitrary time.time.

Unit TestUnit Test -- a test designed to validate and verify a software and/or a test designed to validate and verify a software and/or hardware unit that is a building block for a larger system in isolation.hardware unit that is a building block for a larger system in isolation.

Utility CurveUtility Curve -- an XY graph which shows time on the X axis between a an XY graph which shows time on the X axis between a service release and relative deadline and shows utility or damage caused to service release and relative deadline and shows utility or damage caused to the system caused by service response generation.the system caused by service response generation.

Page 69: ECEN ECEN 56535653 TerminologyGuide - …ecee.colorado.edu/ecen5653/ecen5653/lectures/pdf/Lecture... · ATSC ATSC -- standardsdeveloped by the Advanced Television Systems Committee

Virtual TimerVirtual Timer -- a timer which is not directly supported by a a timer which is not directly supported by a hardware interval timer, but rather is a software tick counter that hardware interval timer, but rather is a software tick counter that can generate a signal after the passing of N software ticks.can generate a signal after the passing of N software ticks.

VoIPVoIP -- Voice over IP, a protocol for transporting voice duplex Voice over IP, a protocol for transporting voice duplex audio over the Internet protocol.audio over the Internet protocol.

WCETWCET -- Worst Case Execution Time, the longest number of Worst Case Execution Time, the longest number of CPU cycles required by a service release ever observed and/or CPU cycles required by a service release ever observed and/or theoretically possible given the hardware architecture and theoretically possible given the hardware architecture and algorithm for data processing used.algorithm for data processing used.

WorstWorst--Case Case Response TimeResponse Time –– The sum of WCET, InputThe sum of WCET, Input--Latency, Dispatch Latency, Interference, and Output Latency for Latency, Dispatch Latency, Interference, and Output Latency for

Sam SiewertSam Siewert 6969

Latency, Dispatch Latency, Interference, and Output Latency for Latency, Dispatch Latency, Interference, and Output Latency for a Service Release.a Service Release.

WriteWrite--BackBack -- when a processor updates memory from registers when a processor updates memory from registers or cache.or cache.

WriteWrite--ThroughThrough -- when a processor maintains cache/memory when a processor maintains cache/memory coherency by always writing cache and the corresponding coherency by always writing cache and the corresponding memory location on all writes to locations which are cached.memory location on all writes to locations which are cached.

YieldYield –– when a thread of execution gives up the CPU resource when a thread of execution gives up the CPU resource voluntarily through a system API call voluntarily through a system API call –– e.g. pause().e.g. pause().