GB2365597A - Processing systems - Google Patents

Processing systems Download PDF

Info

Publication number
GB2365597A
GB2365597A GB0104820A GB0104820A GB2365597A GB 2365597 A GB2365597 A GB 2365597A GB 0104820 A GB0104820 A GB 0104820A GB 0104820 A GB0104820 A GB 0104820A GB 2365597 A GB2365597 A GB 2365597A
Authority
GB
United Kingdom
Prior art keywords
memory
monitor
processor
application
keyword
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0104820A
Other versions
GB0104820D0 (en
GB2365597B (en
Inventor
John Alun Davies
James Frederick Moore
Peter John Stevens
Denis Vaughan Weale
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Smiths Group PLC
Original Assignee
Smiths Group PLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Smiths Group PLC filed Critical Smiths Group PLC
Publication of GB0104820D0 publication Critical patent/GB0104820D0/en
Publication of GB2365597A publication Critical patent/GB2365597A/en
Application granted granted Critical
Publication of GB2365597B publication Critical patent/GB2365597B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Abstract

A processing system has a processor 1 with a memory map 10 identifying locations in a memory 20 where data are stored, data associated with an application being stored at the same location every time an application is run. The processor runs each application during specified processing time slots. A monitor 30 contains information as to the memory locations associated with each application and the time slots during which each application should be run. The monitor 30 also has a register 32 containing a keyword, which is compared with a keyword supplied by the processor 1 when it switches between user mode and supervisory mode so that the monitor denies access to memory locations associated with the other mode.

Description

2365597 PROCESSING SYSTEMS This invention relates to processing systems.
Processing systems used in aviation and military applications are usually specially built and tested to ensure that they operate predictably. There is, however, increasing pressure on manufacturers to reduce cost of equipment by using commercial off-the-shelf (COTS) components. Commercially available processors are, however, not suitable for use in high integrity applications for several reasons. For example, although the operating system of the microprocessor contains a memory map indicating the location within the memory at which various items of programs and data are stored, the same items of data are not generally located at the same location every time that the processor is turned on. Because data is not located in the same memory partition every time, there can, for example, be no guarantee that data is always contained in memory partitions that have sufficient capacity or that have been tested to the required standard for a particular application. Also, where several different software applications are run on a processor simultaneously, the operating system usually runs the different applications in time-slots, which are usually allocated arbitrarily. This can result in some applications having insufficient allocated time to run reliably every time, whereas less important applications might have more time allocated than is strictly necessary.
In operation, microprocessors function in one of two different modes, namely a User Mode and a Supervisor Mode. Applications programs run entirely in the User Mode whereas the Supervisor Mode is more powerful and is used to provide operating system services to the User Mode and to run the operating system of the processor. Conventional processors switch 2 from the User Mode to the Supervisor Mode either at the end of a time period allocated for a particular application or when the application calls for services from the User Mode. There is generally no indication whether the processor is running in User Mode or in Supervisor Mode. This contributes to uncertainty about the operation of the processor system, which is not acceptable in high integrity systems.
Systems are available that avoid these problems, but these require special fabrication not generally suitable for use with commercially available processors.
1 It is an object of the present invention to provide an improved processing system.
According to one aspect of the present invention there is provided a processing system including a processor, a memory and a monitor, the processor being connected with the memory, the processor including a memory map identifying locations within the memory at which specified data are stored, the memory map being arranged such that data associated with an application are stored at the same location every time an application is run, the processor being arranged to run each application during specified processing time slots, the monitor containing information as to the memory location where data associated with each application are stored and containing information as to the time slots during which the processor should be running each application, the monitor being connected such as to receive signals indicative of the memory locations being addressed and the application being run, and the monitor being arranged to check whether the correct memory locations are being addressed and whether the correct application is being run in a given time slot.
3 According to another aspect of the present invention there is provided a processing system including an applications processor, a memory and a monitor, the processor being connected with the memory and the monitor, and the processor being operable in two different modes in which it has access to respective different memory locations, the monitor containing a store of at least one keyword, the processor being arranged to supply a keyword to the monitor when it switches between the two different modes, the monitor being operable to compare the keyword supplied by the processor with the keyword stored in the monitor, and the monitor being arranged to deny access by the processor to memory locations associated with a mode if the keyword supplied by the processor is not compatible with the keyword in the monitor.
The memory preferably includes a flash memory containing software relating to the applications to be run on the system and downloadable to other locations in the memory.
A processing system and its method of operation according to the present invention, will now be described, by way of example, with reference to the accompanying drawing, which shows the system schematically.
The system includes a processor 1 and a memory 20. The processor 1 may be of a conventional kind and includes a memory map unit 10 specifying locations in memory at which different data are to be stored. The processor 1 is used to run various software program applications.
4 The memory 20 has numerous different locations within it that can be individually addressed to provide partitioned storage of data. It will be appreciated that this memory 20 need not be a single unit but could be made up of any number of separate units. The memory 20 may include a flash memory 201 in which all the software relating to the applications to be run on the system are stored and from which the software can be downloaded to other locations within the memory. The memory 20 is connected with the processor 1 via three data channels 11, 12 and 13. One data channel 11 carries information as to address locations within the memory 20; the second channel 12 carries data to be supplied to or from the memory at the address specified on the first channel; and the third channel 13 specifies whether data is to be written into the memory or read out from it. These three channels 11 to 13 may be provided by a single databus.
The system includes an additional component in the form of a monitor device 30, which functions to check operation of the system. The monitor 30 is connected to a device 2 in the form of an EPROM or processor so that information from the device is supplied to the monitor. The device 2 contains parameters determined during design of the system, which define allowable memory access rights and run duration times. The device 2 may also manage violations by either forcing the processor 1 to stop or producing a warning or alarm. The monitor 30 is also connected to the three channels 11 to 13 so that the monitor receives information from these three channels. The monitor 30 includes a store 31 of information concerning the locations or partitions within the memory 20 at which different items of data are to be stored and information concerning the time slots during which specified applications are to be run. The monitor 30 also includes registers 32 containing keywords for comparison with keywords supplied to the monitor.
The processor 1 switches between User Mode UM and Supervisor Mode SM according to whether it is running an application or whether it carrying out some other function. The processor 1 switches between these two modes by means of an Application Program Interface API, which is a high assurance software layer. In the present invention, the API is arranged to send a keyword to the monitor 30 whenever it is requested to change from UM to SM and sends a different keyword whenever it returns to UM. If the keyword transmitted by the API corresponds with that stored in the register 32 in the monitor 30, the monitor enables access by the processor 1 to those partitions of the memory 20 reserved exclusively for use in the Supervisor Mode. If the keyword does not correspond, the monitor provides a signal to the processor 1 to indicate a malfunction. From the data from channels 11 to 13 and from the I/0 processor 2, the monitor 30 is aware which application is being run and which memory partition access has been requested. If the memory partition requested is inappropriate for the application being run, the monitor 30 refuses access, even if the correct keyword is sent.
The monitor 30 also monitors when an application commences and terminates on the processor and the memory partitions being accessed at any time. Stores 31 in the monitor 30 define sequences of time and memory address maps, which cycle around repetitively. If the appropriate memory partition is not being accessed in the appropriate time slot, the monitor 30 indicates a malfunction to the processor 1.
6 1 The system of the present invention can be applied readily to conventional COTS processors without excessive modification. It can also be used with a wide variety of different processors and is relatively immune to changes in design of processors.
7

Claims (2)

1. A processing system including a processor, a memory and a monitor, the processor being connected with the memory, the processor including a memory map identifying locations within the memory at which specified data are stored, wherein the memory map is arranged such that data associated with an application are stored at the same location every time an application is run, wherein the processor is arranged to run each application during specified processing time slots, the monitor containing information as to the memory. location where data associated with each application are stored and containing information as to the time slots during which the processor should be running each application, wherein the monitor is connected such as to receive signals indicative of the memory locations being addressed and the application being run, and wherein the monitor is arranged to check whether the correct memory locations are being addressed and whether the correct application is being run in a given time slot.
2. A processing system including an applications processor, a memory and a monitor, the processor being connected with the memory and the monitor, and the processor being operable in two different modes in which it has access to respective different memory locations, wherein the monitor contains a store of at least one keyword, wherein the processor is arranged to supply a keyword to the monitor when it switches between the two different modes, wherein the monitor is operable to compare the keyword supplied by the processor with the keyword stored in the monitor, and wherein the monitor is arranged to deny access by the processor to 8 memory locations associated with a mode if the keyword supplied by the processor is not compatible with the keyword in the monitor.
A system according to Claim 1 or 2, wherein the memory includes a flash memory containing software relating to the applications to be run on the system and downloadable to other locations in the memory.
A processing system substantially as hereinbefore described with reference to the accompanying drawing. 1 Any novel and inventive feature or combination of features as hereinbefore described.
GB0104820A 2000-03-09 2001-02-27 Processing systems Expired - Lifetime GB2365597B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GBGB0005535.0A GB0005535D0 (en) 2000-03-09 2000-03-09 Processing systems

Publications (3)

Publication Number Publication Date
GB0104820D0 GB0104820D0 (en) 2001-04-18
GB2365597A true GB2365597A (en) 2002-02-20
GB2365597B GB2365597B (en) 2004-09-15

Family

ID=9887174

Family Applications (2)

Application Number Title Priority Date Filing Date
GBGB0005535.0A Ceased GB0005535D0 (en) 2000-03-09 2000-03-09 Processing systems
GB0104820A Expired - Lifetime GB2365597B (en) 2000-03-09 2001-02-27 Processing systems

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GBGB0005535.0A Ceased GB0005535D0 (en) 2000-03-09 2000-03-09 Processing systems

Country Status (4)

Country Link
US (1) US6526490B2 (en)
DE (1) DE10110808B4 (en)
FR (1) FR2808901B1 (en)
GB (2) GB0005535D0 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075236A1 (en) * 2004-09-30 2006-04-06 Marek James A Method and apparatus for high assurance processing
CA2756035A1 (en) * 2009-03-20 2010-09-23 Algal Scientific Corporation System and method for treating wastewater via phototactic heterotrophic microorganism growth
US9400722B2 (en) 2011-11-15 2016-07-26 Ge Aviation Systems Llc Method of providing high integrity processing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
JP3023425B2 (en) * 1987-10-09 2000-03-21 株式会社日立製作所 Data processing device
KR910006851A (en) * 1989-09-01 1991-04-30 원본미기재 Real-time computer rescue device and method
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
JP3451595B2 (en) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション Microprocessor with architectural mode control capable of supporting extension to two distinct instruction set architectures
FR2759177B1 (en) * 1997-01-31 1999-04-23 Sextant Avionique PROCESS AND DEVICE FOR PROCESSING MULTIPLE TECHNICAL APPLICATIONS WITH EACH OF THE SAFETY THAT IS PROPER TO IT
US5968136A (en) * 1997-06-05 1999-10-19 Sun Microsystems, Inc. Apparatus and method for secure device addressing
US6055650A (en) * 1998-04-06 2000-04-25 Advanced Micro Devices, Inc. Processor configured to detect program phase changes and to adapt thereto
US6202130B1 (en) * 1998-04-17 2001-03-13 Motorola, Inc. Data processing system for processing vector data and method therefor
DE19927657A1 (en) * 1999-06-17 2001-01-04 Daimler Chrysler Ag Partitioning and monitoring of software-controlled systems

Also Published As

Publication number Publication date
DE10110808A1 (en) 2001-09-13
US6526490B2 (en) 2003-02-25
GB0104820D0 (en) 2001-04-18
FR2808901A1 (en) 2001-11-16
US20010021968A1 (en) 2001-09-13
FR2808901B1 (en) 2006-10-20
DE10110808B4 (en) 2011-03-17
GB0005535D0 (en) 2000-04-26
GB2365597B (en) 2004-09-15

Similar Documents

Publication Publication Date Title
US7552306B2 (en) System and method for the sub-allocation of shared memory
EP0079133A2 (en) Virtual memory protected system
JPH03266051A (en) Security system for software
EP0355363B1 (en) Integrated circuit timer with multiple channels and dedicated service processor
EP0355463B1 (en) Timer channel with multiple timer reference features
EP0179981A2 (en) Data processing apparatus with fixed address space and variable memory
US20060150023A1 (en) Debugging apparatus
KR100385499B1 (en) Data processor with transparent operation during a background mode and method therefor
US9336411B2 (en) System on chip
US6526490B2 (en) Data processing systems with process monitor
KR100495240B1 (en) Processor system
EP0205472B1 (en) Arrangement for apportioning priority among co-operating computers
EP0695986A1 (en) System for providing access protection on media storage devices
WO2004107248A2 (en) Read access and storage circuitry read allocation applicable to a cache
KR20060120636A (en) Signal processing system control method and apparatus
US6044477A (en) System and method for auditing buffer usage in a data processing system
US7228435B2 (en) Program executing method in service system and program executing apparatus for the same
US6397243B1 (en) Method and device for processing several technical applications each provided with its particular security
KR970066911A (en) Bus control device and information processing device
KR960002032A (en) Interface device
US5797032A (en) Bus for connecting extension cards to a data processing system and test method
US20040243751A1 (en) Method for resource access co-ordination in a data processing system, data processing system and computer program
EP0408200A2 (en) Using shared resident functions in a computer system
CN106326170A (en) Equipment index number distribution method, device and system
JPS60252966A (en) File access possible time advance notice processing system

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)
PE20 Patent expired after termination of 20 years

Expiry date: 20210226