• Aucun résultat trouvé

IRMKTM VERSION 1.2 REAL-TIME KERNEL

Dans le document LITERATURE To (Page 49-53)

A 32-BIT REAL-TIME KERNEL

The iRMK'" Version 1.2 Real-time Kernel is the 32-bit real-time executive developed. sold. and supported by Intel. the Inte1386"' architecture experts_ It reduces the cost and risk of designing and maintaining software for numerous real-time applications such as embedded control systems and dedicated real-time subsystems in multiprocessor systems_

FEtlTlJRES

• 32-bit real-time multitasking kernel

• Rich set of real-time services

• Designed and optimized for the Inte1386"' and Inte1376'" families

• Extremely fast execution with predictable response times for time critical applications

• Compact design. as small as 8K bytes

• Multiprocessor support

• Requires only the 80386 or 80376; Provides optional support for 80387 and 80387SX Numeric Coprocessors and other peripheral devices

o Works with any bus including the

MULTIBUS'" I and Ml]LTIBUS II architectures o Optional MULTI BUS II message passing

support provided

• Designed for easy customization and enhancement

• Easily programmed into PROMs or P.PROMs

• Comprehensive development tool support

• Supported by.lntel

i n t J - - - -

Intd Curpurall!lIl assumes no r\'sDon~lhlill~ flit thl.' uS!.' IIf an~ rlrrullr} othn than nrrullr~ t'mhodll'd In an Intd product. No olh('r rlrcUil patent licenses arc puhll~hl'd U~'!'I.·dl,\I('t'S

FEATIlRES

1lEA£.'I'IIWE stJIiTWtlaE I'IlOM 'I'HE INIJIJS'I'Il1'

u;,.t.a

Intel has been the industry leader in microprocessor·based real-time computing since It Invented the microprocessor. 1\0 other company supplies the range of real·tlme solutions that we do. Since 1977. thousands of customers have used our iRMX. real-time operating systems. "

Now Intel has put Its real·time expertise into a 32·bit kernel that supports the 80386 microprocessor and the 80376 embedded controller. TIle IRMK Version 1.2 Kernel saves you the cost of designing. debugging. and maintaining your own executive for real·t1me systems. You can concentrate on writing your application rather than on writing a kernel.

I'IIE

(l1J1UaS'I' r.4'1'H

I'OIl tI

WIBE lUNGE fJI' IrEtI£.'I'IIWE tI,.,.UCtl'l'IONS The IRMK Kernel's high performance and rich set of real·

time services make it ideal for a wide range or real·time

"applications. including:

Data acquisition and analysis Continuous process control AvioniCS and navigation Field command control Energy and environmental control Radio control The iRMK Version 1.2 Kernel provides a rich set of services for real·time applications. Including:

• Task management with system calls to create. manage.

and 'schedule tasles in a multitasking environment. The Kernel offers pre-emptive priority scheduling combined with optional time-slice (round robin) scheduling.

The scheduling algorithm used by the iRMK Kernel allows tasks to be rescheduled in a fixed amount of time . regardless of the number of tasks. Applications may contain any number of tasles.

An application can provide optional task handlers to customize task management. These handlers can execute

"on task c",ation. task SWitch. task deletion. and task priority change. Task handlers can be used for a Wide range of functions including saving and restoring the state of coproct'Ssor registers on task switch. masking intt>rrupts baSt'll on task priority. or implementing statistical and diagnostic monitors.

• Interrupt management by immediately switching control to user·written interrupt handlers when an interrupt occurs. Response to interrupts is both fast and predict.able. Most of the Kernel's system calls can be executed directly from interrupt handlers.

• Time managl'mcnt providing single·shot alarms. repetitive alarms. and a real·time clock. Alarms can be reset.

These time manageml~nt facilities can solve a wide range of real·timl' programming problems. Single·shot alarms.

for example. can bl' used to handle timeouts. If the timeout occurs. till' alarm invokt'S a user-written handler:

if the event oCl~Urs befort' tht' timeout. the application simply delrtes the alarm. Other uses for the Kernel's time management facilities include polling devices with repetitive alarms. putting tasks to sleep for specified periods (If time. 01' implementing a time-of-day clock .

• Semaphores. rt'~itlns. anti mailboxes for intertask synchronization and t~lmmunication. Semaphores are used for intertasle Signalling and synchronization. Regions are special binary semaphores used to ensure mutual exclusion and prevent dradlock when tasks contend for control of system resources. A task holding a region'S unit runs at the priority of the highest priority task waiting for the rt'glnn's unit.

Mailboxes are queues that can hold any number of messages and are used to exchange data between tasks.

Either data or pointers ran be scnt using mailboxes. The Kernel allows mailbox messages to be of any length. High

" priority messages can be placed (jammed) at the front of the message queue to ensure that they are received before other messages queued at the mailbox.

To ensure that high priority tasks are not blocked by lower priority t.asks, the Kernel allows ~sks to queue at semaphores and mailboxes in priority order. The Kernel also supports first·in. first·out tasle queuing.

• Memory pool manager that provides fixed and variable block allocation. Memory can be divided into any number of pools. Multiple memory pools might be created for different speed memories or for allocating different size blocks. Access to a memory pool for fixed,sized allocation is always deterministic.

The Kernel·supplied memory manager works with flat.

segmented. and paged addressing. Users can write their own memory manager to provide different memory management policies or to support virtual memory.

I FEATIlRES

SlJrPOIlT

I'fIIl

MlJ"TlrIlOCESSIN6

J'1.4

MlJ"TIBlJS~ " .4IlCHITECTlJIlE The MULTIBUS (( architecture is designed to optimize multiprocessor designs. This bus:

• Implements a loosely coupled architecture in which interprocessor interrupts and data are exchanged via messages transmitted as packets over the bus;

• Provides fast bus access;

• Allows interprocessor signalling at interrupt speeds from as many as 255 sources;

• Provides data transfer rates of up to 32 megabytes per second;

• Allows multiple communication seSSions to occur simultaneously between processors; .

• Supports up to 21 CPU boards per chaSSiS with each hoard providing the processor. memory. and 1/0 needcd for Its portion of the application; and

• Provides registers-called Interconnect Space-on each board that can be used for dynamic system conCiguration.

Two optional modules allow iR:'.1K Kernel applications to make full use of the MULTIBUS (( architl'cturc. Thc first module Implements message passing allowing the application to have direct access to the message passing hardware or to use Intel's MULTIBUS (( transport protncol.

The second module implements interconnect space access to support dynamic system configuration.

These modules can be used to implement high performance multiprocessor designs that:

• Break. a highly complex real·time application into multiple lower complexity applications distributed across multiple

processors .

• Distribute an application that's too CPU intensive for a Single processor between several processors

• ProVide redundancy

• Dedicate processors tn specific tasks

• Provide interoperation with any operating system or controller board that uses Intel's MULTI BUS (( transport protocol, including the iRMX" 11.3. iRMK 1.2. and Intel System V/386 operating systems.

1IMlD1t'.4IlE llE()lJIIlEIJIEN'I'S IIN/IJ SlJrPOIlT

The iRMK Kernel requires only an 80386 microprocessor or an 80376 embedded controller and sufficient memory for itself and its application. Its design. however. recognizes that many systems use additional programmable peripheral' devices and coprocessors. The Kernel provides optional device managers for:

• The 80387 and 80387SX Numeric Coprocessors

• The 82380 and 82370 Integrated System Peripherals

• The 8254 Programmable Interval Timer

• The 8259A Programmable Interrupt Controller

An application can supply managers for other devices and coprocessors in addition to or In replacement of the devices listed above.

The iRMK Kernel was designed to be programmed into PROM or EPROM. making it easy to use in embedded designs.

The iRMK Kernel can be used with any system bus including the MULTIBUS I and MULTIBUS II busses. The optional MUI:I'II3US II message passing and Interconnect Space access modules use the Message Passing Coprocessor (MPC). Till' Kernel provides managers to use the

82380/82370 Intt'{lrated System Peripherals or the 82258 Advanced D:'.1A controller with t.he MPC for message passing,

SlJrroRT FOil THE INTE"3B6" liND INI'E£376'" .4IlCnlI'ECTfJIlES Thl' iRMK Kernl'l providl'S 32·bit. protl'cted mode 80386 anll 80376 Olll'l'ation, By lIl'lilUlt. the Kernel and iI.~

application I'Xt:l'utl' in a flat nwmory space of up to 4 gigahytes and in a single privilege level. Applications can add support for any lIIixtun' of adllitional protected mode features including:

• Any model of sC{lml'Rtation

• Memory paging

• Virtual memory

• Multiple privilege levels

•. Call and trap gates

These protected mode features can be used to increase the reliability of the application by using the processor's hardware to;

• Protect against attempts to write beyond segment bounds (to catch, for example, situations like stack overflow or underflow)

• Allow only privileged or trusted code to access key routines and data

• Isolate bugs to single mudules so that the rest of the application and the Kernel are not corrupted

• Assign access rights to code and data

• Isolate address spaces

To use these features. the application manipulates tlie proCessor's descriptor tables. Since the Kernel was designed specifically to support 80386 and 80376 applications. it provides an optional Descriptor Table manager that Simplifies proteetl'd mode programming. This manager provides system calls to read and write descriptor table entries. to convert addresses from linear to physical and vice versa. and to get a segment's selector.

FEATIJRES

Kernel Core Modules

Application

Language Interface Libraries

Kernel Optional Modules

Hardware ftpre t: iRMK'" Version 1.2. Real-Time Kernel Architecture

Kernel Supplied

Device Managers

User-Supplied System Routines·

·User-supplied system routines would include interrupt handlers. user-written device managers. and similar routines.

iRMXII> 11.3 iRMK'"1.2 iRMK'"1.2 Intel System V/386

Operating Real-Time Real-Time Operating

System Kernel Kernel System

I II II I

11

MULTIBUSII> II Parallel System Bus

I

(IEEE 1296)

Terminal Disk

Concentrator Controller

npre

Z: The optional MULTIBUSII> II message passing modules give the iRMK'" 1.2 Version 'Sernel full multiprocessing capabilities for distributing applications among processors and interoperating with oth~r operating systems.

FEtlTIlRES

.t MODIJMIl Ml€IlI'l'E€'I'IJRE I'OR E.tSI' €lfS'I'OMIZ.t'l'1ON

The iRMK Kernel was designed for maximum flexibility so it can be customized for each application. Each major function-mailboxes. for example-was implemented as a separate module. The Kernel's modules have not been linked together and are supplied individually. You link the modules you need for your application. Any module not used does not need to be linked in. and does not increase the size of the Kernel in your application. You can also replace any optional Kernel module with one that implements specific features required by your application. For example. you might want to replare the Kernel'S memory manager with one that supports virtual memory.

Table 1 lists the Kernel's modules.

fM'e 0", . . .", 0", . . .", Del'b

DEVELOPING WI'I'H 'I'HE '''Mr

Dans le document LITERATURE To (Page 49-53)