WO2001006382A1 - Software fifos in a multimaster bus system - Google Patents

Software fifos in a multimaster bus system Download PDF

Info

Publication number
WO2001006382A1
WO2001006382A1 PCT/NO2000/000242 NO0000242W WO0106382A1 WO 2001006382 A1 WO2001006382 A1 WO 2001006382A1 NO 0000242 W NO0000242 W NO 0000242W WO 0106382 A1 WO0106382 A1 WO 0106382A1
Authority
WO
WIPO (PCT)
Prior art keywords
fifo memory
party
bus
data
write
Prior art date
Application number
PCT/NO2000/000242
Other languages
French (fr)
Inventor
Geir Robert Svelmoe
Original Assignee
Telefonaktiebolaget Lm Ericsson
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 Telefonaktiebolaget Lm Ericsson filed Critical Telefonaktiebolaget Lm Ericsson
Priority to GB0200399A priority Critical patent/GB2367671B/en
Priority to AU63240/00A priority patent/AU6324000A/en
Priority to DE10084835A priority patent/DE10084835B3/en
Publication of WO2001006382A1 publication Critical patent/WO2001006382A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Abstract

The present invention relates to communication of data between two parties in a multi master bus system, like PCI bus or VME bus, using shared RAM. The parties may comprise two CPUs, two SW processes executing on the same processor, or a SW process and an interrupt routine. In said RAM there is arranged a FIFO memory locally to each party. Each part may read from its local FIFO memory and write to the other party's FIFO memory only. In this way only write operations are performed on the bus.

Description

IT, LU, MC, NL, PT, SE), OAPI patent (BF, BJ, CF, CG, For two-letter codes and other abbreviations, refer to the "Guid- CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG). once Notes on Codes and Abbreviations " appearing at the beginning of each regular issue of the PCT Gazette Published:
— With international search report
— Before the expiration of the time limit for amending the claims and to be republished in the event of receipt of amendments
1
SOFTWARE FIFOS A MULTIMASTERBUS SYSTEM
TECHNICAL FIELD
This invention is applicable to a multi master bus system (e.g. PCI, VME, etc.) where point to point communication between two masters is to be carried out by using shared RAM to pass data. A special case will be data exchange between two SW processes executing on the same processor, or between a SW process and an interrupt routine.
TECHNICAL BACKGROUND
PROBLEM AREA
When shared memory is used to exchange data between two communicating parties, which executes asynchronous to each other, one must ensure that the two does not update the same memory location (s) at the same time.
In some systems a bus read operation will be slower than a bus write operation (the address decoding for the target will be the same, but for a read operation to complete the data must be fetched by the bus interface, while for a write operation the data can be temporarily buffered in the bus interface circuitry) . Hence a "write-only" system would be more efficient.
KNOWN SOLUTIONS AND PROBLEMS WITH THESE
To gain access to a shared memory resource some processors and bus systems have an atomic "Test-And-Set " instruction which becomes a single read-modify-write operation on the bus. These instructions may not be supported by all processors/bus-systems, and if they are one must have a platform specific part of the SW (usually this will partly be manually coded in assembly language) . If common memory 2
locations to be updated by more than one party could be avoided one would get a more portable high level SW.
For processes executing on the same CPU it would typically be necessary to mask interrupts during the memory update. Usually processes at user level are not allowed to do this and they would have to issue a system call for doing the update. By eliminating the need for having memory locations updated by more than one party, there would be no difference in the SW if the two processes executes on the same processor or on two different processors which have bus access to each others memory.
THE INVENTION
BRIEF SUMMARY OF THE INVENTION
The objects of the present invention are thus to provide an arrangement for point to point communication between two masters or processes over a multi master bus system, which allows communication to be executed asynchronous and concurrently, which is hardware independent, allows faster transfer of data between the masters or processes and eases the load on bus and CPU(s) .
Further objects of the invention are to avoid using common memory locations updated by more than one party, and avoid read operations on the bus .
These objects are met in an arrangement according to the invention comprising FIFO memories for transferring data between the two CPUs/communicating parties, one FIFO assigned to each CPU/party, where each party is allowed to read from its assigned FIFO only, and write to the FIFO assigned to the other party only.
The exact scope of protection for the present invention is as defined in the appended patent claims. 3
DRAWINGS
The invention will now be described in reference to the appended drawings where :
Figure 1 shows two FIFO memories arranged for transferring data between two CPUs/parties, A and B.
Figure 2 shows in principle how one FIFO is arranged to receive data from CPU/party B only, and how the read/write indexes are updated.
Figure 3 shows the full arrangement of FIFOs according to the invention.
Figure 4 shows a simplified overview of a system to which the invention may be applied.
DETAILED DESCRIPTION OF THE INVENTION
The invention proposes a HW independent solution for a shared memory communication mechanism. The two communicating parties may be located on the same processor or at different processors in a multi master bus system.
The communication between the two CPUs/communicating parties is done through a pair of SW FIFOs, one for each direction of data flow. The particular about these FIFOs are the physical location of their components.
To describe this FIFO organisation we will start by drawing two regular SW FIFOs in one common physical memory, Figure 1, and gradually migrate towards the SW FIFO organisation proposed by the invention.
The read index and the write index respectively points to the next location to be read and written. The amount of 4
data in the FIFOs must be calculated upon the values of the read and write indexes together with the FIFO size, which in this case is N. The communicating processes/processors executes asynchronous and concurrently. Using a counter to hold the number of data entries in a FIFO would imply the need for a mutual exclusion mechanism for updating this counter.
When the read index equals the write index, the FIFO is empty. The FIFO can at most contain N-l entries. If the FIFO was to contain N entries, the read index would equal the write index and it would be impossible to distinguish between a full and an empty data area.
Process B, which sends data to process A by inserting them into FIFO (A) , is the only process that may write to the data area of FIFO (A) and to wri teld (A) . Before any data is written, process B must compute the amount of space available in FIFO (A) . Process A reads the wri teldx (A) , computes the number of data in the FIFO, reads the data and updates readldx (A) (which may be updated only by process A) . For data in the other direction the roles are reversed. Since the two processes are asynchronous to each other, It is important that the respective index is updated after the read or write operation is completed.
If the FIFO components are located in such a manner that only write accesses are to be performed on the bus connecting the two processors one would have only the net amount of bus accesses to transfer the data (i.e. one would never access the bus to read an index which is not updated) . By organising the FIFOs in this manner one would write information to the other CPU to the bus and read all incoming information in the local memory (which also will be faster) .
Figure 2 shows the suggested placement of the components for the FIFO used for data from a CPU(B) to another CPU (A) . When B wishes to send data to A it checks in its local memory for the value of the readldx (A) . Since A is not allowed to update the wri teldx (A) in its local memory, B can calculate the space available in FIFO (A) based on the readldx (A) and the remembered value of wri teldx (B) (which B has written into A's memory earlier) . B then writes the data followed by a new wri teldx (A) into A's memory.
The complete picture of the location of two FIFOs' components is shown in Figure 3.
All information (data and indexes) that should be read by the remote system must be written into that systems memory, but of course, a local copy of the indexes must also be maintained.
Since a FIFO pair is only a point to point communication mechanism, there must be one pair for each pair of communicating parties.
Figure 4 shows a simplified overview of a system to which the invention may be applied.
ADVANTAGES
Portability: It can be implemented in high level language without any platform specific assembly instruction or OS system calls.
The two communicating parties can be executing on the same processor or on two different processors with the same high level code for taking care of the communication. Bus load: The bus between the two CPUs will be busy for a shorter time since there will be only write transactions and only the net amount of needed data will be put onto the bus. The smaller the bursts of data are the more effective will the "write only" be compared to a read/write system. CPU load: Since data may be buffered at all bus interfaces down the transaction path, the operation will complete in less time and hence leave more time for other processing.
An important advantage of the invention is that it can be implemented in software only, i.e. without making changes in the hardware of the involved systems .

Claims

7P a t e n t c l a i m s
1. Arrangement in a multi master bus system for providing point to point communication between a first party and a second party using shared RAM to pass data, c h a r a c t e r i z e d i n that the arrangement comprises a first and a second FIFO memory arranged in said RAM, the first FIFO memory is arranged locally to said first party and the second FIFO memory is arranged locally to said second party, the first party is allowed to read from a data field of the first FIFO memory only and write to a data field of the second FIFO memory only.
2. Arrangement according to claim 1, c h a r a c t e r i z e d i n that the second party is allowed to read from a data field of the second FIFO memory only and write to a data field of the first FIFO memory only.
3. Arrangement according to claim 1 or 2 , c h a r a c t e r i z e d i n that each FIFO memory includes an write index for its own data field and a read index for the data field of the other FIFO memory, the indexes of the first FIFO memory are updated by the second party only and the indexes of the second FIFO memory is updated by the first party only.
4. Arrangement according to claim 3 , c h a r a c t e r i z e d i n that each FIFO memory includes a local copy of the indexes of the other FIFO memory.
5. Arrangement according to claim 1 or 4 , c h a r a c t e r i z e d i n that the communicating parties are bus-masters. 8
6. Arrangement according to claim 1 or , c h a r a c t e r i z e d i n that the communicating parties are SW processes.
7. Arrangement according to claim 1 or 4 , c h a r a c t e r i z e d i n that the communicating parties comprises one process and one interrupt routine.
8. Arrangement according to any one of the preceding claims, c h a r a c t e r i z e d i n that the bus system is a PCI bus .
9. Arrangement according to any one of the preceding claims, c h a r a c t e r i z e d i n that the bus system is a VME bus .
PCT/NO2000/000242 1999-07-20 2000-07-19 Software fifos in a multimaster bus system WO2001006382A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
GB0200399A GB2367671B (en) 1999-07-20 2000-07-19 Software fifos in a multimaster bus system
AU63240/00A AU6324000A (en) 1999-07-20 2000-07-19 Software fifos in a multimaster bus system
DE10084835A DE10084835B3 (en) 1999-07-20 2000-07-19 Arrangement in a multimaster bus system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NO19993558A NO312926B1 (en) 1999-07-20 1999-07-20 Communication over multimaster bus
NO19993558 1999-07-20

Publications (1)

Publication Number Publication Date
WO2001006382A1 true WO2001006382A1 (en) 2001-01-25

Family

ID=19903600

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/NO2000/000242 WO2001006382A1 (en) 1999-07-20 2000-07-19 Software fifos in a multimaster bus system

Country Status (5)

Country Link
AU (1) AU6324000A (en)
DE (1) DE10084835B3 (en)
GB (1) GB2367671B (en)
NO (1) NO312926B1 (en)
WO (1) WO2001006382A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0360153A2 (en) * 1988-09-19 1990-03-28 Princeton University Oblivious memory computer networking
EP0391584A2 (en) * 1989-04-03 1990-10-10 AT&T GLOBAL INFORMATION SOLUTIONS INTERNATIONAL INC. Fifo memory system
US5214759A (en) * 1989-05-26 1993-05-25 Hitachi, Ltd. Multiprocessors including means for communicating with each other through shared memory
US5522045A (en) * 1992-03-27 1996-05-28 Panasonic Technologies, Inc. Method for updating value in distributed shared virtual memory among interconnected computer nodes having page table with minimal processor involvement
WO1997000533A1 (en) * 1995-06-15 1997-01-03 Intel Corporation A method and apparatus for transporting messages between processors in a multiple processor system
US5870572A (en) * 1991-07-22 1999-02-09 International Business Machines Corporation Universal buffered interface for coupling multiple processors, memory units, and I/O interfaces to a common high-speed interconnect

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0349123B1 (en) * 1988-06-27 1995-09-20 Digital Equipment Corporation Multi-processor computer systems having shared memory and private cache memories
EP0553338B1 (en) * 1991-08-16 1999-10-13 Cypress Semiconductor Corp. High-performance dynamic memory system
FR2687487B1 (en) * 1992-02-19 1996-12-20 Alcatel Business Systems SYSTEM FOR SHARING ACCESS TIME TO A MEMORY SHARED BETWEEN A PROCESSOR AND OTHER APPLICATIONS.
US5594702A (en) * 1995-06-28 1997-01-14 National Semiconductor Corporation Multi-first-in-first-out memory circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0360153A2 (en) * 1988-09-19 1990-03-28 Princeton University Oblivious memory computer networking
EP0391584A2 (en) * 1989-04-03 1990-10-10 AT&T GLOBAL INFORMATION SOLUTIONS INTERNATIONAL INC. Fifo memory system
US5214759A (en) * 1989-05-26 1993-05-25 Hitachi, Ltd. Multiprocessors including means for communicating with each other through shared memory
US5870572A (en) * 1991-07-22 1999-02-09 International Business Machines Corporation Universal buffered interface for coupling multiple processors, memory units, and I/O interfaces to a common high-speed interconnect
US5522045A (en) * 1992-03-27 1996-05-28 Panasonic Technologies, Inc. Method for updating value in distributed shared virtual memory among interconnected computer nodes having page table with minimal processor involvement
WO1997000533A1 (en) * 1995-06-15 1997-01-03 Intel Corporation A method and apparatus for transporting messages between processors in a multiple processor system

Also Published As

Publication number Publication date
DE10084835B3 (en) 2005-12-22
GB0200399D0 (en) 2002-02-27
AU6324000A (en) 2001-02-05
NO993558D0 (en) 1999-07-20
NO312926B1 (en) 2002-07-15
GB2367671B (en) 2003-10-15
NO993558L (en) 2001-01-22
GB2367671A (en) 2002-04-10

Similar Documents

Publication Publication Date Title
US4250546A (en) Fast interrupt method
US4316245A (en) Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization
US4394725A (en) Apparatus and method for transferring information units between processes in a multiprocessing system
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US3781810A (en) Scheme for saving and restoring register contents in a data processor
JP2644780B2 (en) Parallel computer with processing request function
US4077058A (en) Method and apparatus for executing an extended decor instruction
US4369494A (en) Apparatus and method for providing synchronization between processes and events occurring at different times in a data processing system
US4130867A (en) Database instruction apparatus for determining a database record type
US4432051A (en) Process execution time accounting system
US5696989A (en) Microcomputer equipped with DMA controller allowed to continue to perform data transfer operations even after completion of a current data transfer operation
US4320451A (en) Extended semaphore architecture
US4044334A (en) Database instruction unload
US4395757A (en) Process synchronization utilizing semaphores
US4200912A (en) Processor interrupt system
EP0487082B1 (en) Nesting management mechanism for use in loop control system
US20020144099A1 (en) Hardware architecture for fast servicing of processor interrupts
US4615019A (en) Data processing system with interrupt facilities
CN108415758B (en) Distributed transaction coordination method and device
US20050066096A1 (en) Reducing latency when accessing task priority levels
US6738837B1 (en) Digital system with split transaction memory access
US5222219A (en) Pipeline computer system having write order preservation
US4344133A (en) Method for synchronizing hardware and software
WO2001006382A1 (en) Software fifos in a multimaster bus system
EP0164972A2 (en) Shared memory multiprocessor system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ CZ DE DE DK DK DM DZ EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
ENP Entry into the national phase

Ref country code: GB

Ref document number: 200200399

Kind code of ref document: A

Format of ref document f/p: F

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP