IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0124072
(2002-04-17)
|
발명자
/ 주소 |
|
출원인 / 주소 |
- International Business Machines Corporation
|
인용정보 |
피인용 횟수 :
13 인용 특허 :
16 |
초록
▼
A method and apparatus is disclosed wherein a first structure in a memory of a controller for sharing information is defined and a hidden structure containing control information for sharing information with the first defined structure is created. Data is synchronized between controllers so that fir
A method and apparatus is disclosed wherein a first structure in a memory of a controller for sharing information is defined and a hidden structure containing control information for sharing information with the first defined structure is created. Data is synchronized between controllers so that firmware development is simplified. The user defines a structure and through the use of macro calls makes that structure shared. Lock rules are provided, to perform synchronization and buffer management. Failover and failback are also addressed to provide a comprehensive solution for sharing work and information between controllers. Accordingly, the emulated shared memory mechanism allows a programmer to define a structure that contains information for sharing without having to reinvent firmware when new features are added to a storage controller.
대표청구항
▼
1. A computer system comprising:a first computer comprising: a first control program; a first memory region addressable by a first application program executing in said first computer; and a first buffer; and a second computer comprising: a second control program; a second memory region addressable
1. A computer system comprising:a first computer comprising: a first control program; a first memory region addressable by a first application program executing in said first computer; and a first buffer; and a second computer comprising: a second control program; a second memory region addressable by a second application program executing in said second computer, and a second buffer; and wherein said first application requests to update data in said first memory region, and in response, said first control program determines if any application in said first or second computer currently has an exclusive lock on both said first memory region and said second memory region, and if not, said first control program obtains the lock for said first application and if said first buffer has a more current version of said data than said first memory region, said first control program copies said more current version of said data from said first buffer to said first memory region for update by said first application, and after said first application updates said data in said first memory region, said first control program writes the updated data from said first memory region to said first buffer, subsequently sends the updated data from said first buffer to said second buffer, and subsequently releases said lock.2. A computer system as set forth in claim 1 wherein subsequently:said second application requests to update data in said second memory region, and in response, said second control program determines if any application in said first or second computer currently has an exclusive lock on both said first memory region and said second memory region, and if not, said second control program obtains the lock for said second application and if said second buffer has a more current version of said data than said second memory region, said second control program copies said more current version of said data from said second buffer to said second memory region for update by said second application, and after said second application updates said data in said second memory region, said second control program writes the data updated by said second application from said second memory region to said second buffer, subsequently sends the data updated by said second application from said second buffer to said first buffer, and subsequently releases said lock. 3. A computer system as set forth in claim 2 wherein:said first computer further comprises a third buffer; said second computer further comprises a fourth buffer; and before said second control program sends the data updated by said second application from said second buffer to said first buffer, said first control program or said second control program determines that said first buffer has an older version of said data than said third buffer. 4. A computer system as set forth in claim 1 wherein:said first computer further comprises a third buffer; said second computer further comprises a fourth buffer; and before said first control program sends the updated data from said first buffer to said second buffer, said first control program or said second control program determines that said second buffer has an older version of said data than said fourth buffer. 5. A computer system as set forth in claim 1 wherein said first application subsequently requests to lock said data in said first memory region for update again, and in response, said first control program determines if any application in said first or second computer currently has an exclusive lock on both said first memory region and said second memory region, and if not, said first control program obtains the lock for said first application and if said first buffer has a more current version of said data than said first memory region, said first control program copies said more current version of said data from said first buffer to said first memory region for update by said first application, and if said first application does not update said data again, said first application notifies said first control program not to write the contents of said first memory region to said first buffer or send the contents of said first buffer to said second buffer, and releases said lock.6. A computer system as set forth in claim 1 wherein said first computer is a first storage controller; said second computer is a second storage controller; and both storage controllers control same external storage.7. A computer system as set forth in claim 1 wherein said second computer does not copy the updated data from said second buffer to said second memory region in response to said updated data being sent from said first buffer to said second buffer, whereby said second computer avoids corresponding overhead when an application in said first computer obtains a next exclusive lock on both said first memory region and said second memory and again updates said data in said first memory region.8. A computer program product comprising:a computer readable medium; first program instructions for execution in a first computer; second program instructions for execution in said first computer to define in said first computer a first memory region addressable by a first application program executing in said first computer; and third program instructions for execution in said first computer to define in said first computer a first buffer; fourth program instructions for execution in a second computer; fifth program instructions for execution in said second computer to define in said second computer a second memory region addressable by a second application program executing in said second computer; and sixth program instructions for execution in said second computer to define in said second computer a second buffer; and seventh program instructions to define an exclusive lock on both said first and second memory regions; and wherein said first application requests to update data in said first memory region, and in response, said first program instructions determine if any application in said first or second computer currently has the lock on said first memory region and said second memory region, and if not, said first program instructions obtain the lock for said first application and if said first buffer has a more current version of said data than said first memory region, said first program instructions copy said more current version of said data from said first buffer to said first memory region for update by said first application, and after said first application updates said data in said first memory region, said first program instructions write the updated data from said first memory region to said first buffer, subsequently send the updated data from said first buffer to said second buffer, and subsequently release said lock; andsaid first, second, third, fourth, fifth, sixth and seventh program instructions are recorded on said medium. 9. A computer program product as set forth in claim 8 wherein subsequently:said second application requests to update data in said second memory region, and in response, said fourth program instructions determine if any application in said first or second computer currently has the lock on said first memory region and said second memory region, and if not, said second fourth program instructions obtain the lock for said second application and if said second buffer has a more current version of said data than said second memory region, said second fourth program instructions copy said more current version of said data from said second buffer to said second memory region for update by said second application, and after said second application updates said data in said second memory region, said second fourth program instructions write the data updated by said second application from said second memory region to said second buffer, subsequently send the data updated by said second application from said second buffer to said first buffer, and subsequently release said lock.10. A computer program product as set forth in claim 9 wherein:said third program instructions further define a third buffer in said first computer; said sixth program instructions further define a fourth buffer in said second computer; and before said fourth program instructions write the data updated by said second application from said second buffer to said first buffer, said first program instructions or said fourth program instructions determine that said first buffer has an older version of said data than said third buffer. 11. A computer program product as set forth in claim 8 wherein:said third program instructions further define a third buffer in said first computer; said fourth program instructions further define a fourth buffer in said second computer; and before said first program instructions write the updated data from said first buffer to said second buffer, said first program instructions or said fourth program instructions determine that said second buffer has an older version of said data than said fourth buffer. 12. A computer program product as set forth in claim 8 wherein said first application subsequently requests to update again said data in said first memory region, and in response, said first program instructions determine if any application in said first or second computer currently has the lock for said first or second memory regions, and if not, said first program instructions obtain the lock for said first application and if said first buffer has a more current version of said data than said first memory region, said first program instructions copy said more current version data from said first buffer to said first memory region for update by said first application, and if said first application does not update said data again, said first application notifies said first program instructions not to write the contents of said first memory region to said first buffer or write the contents of said first buffer to said second buffer, and subsequently release said lock.13. A computer program product as set forth in claim 8 wherein said first computer is a first storage controller; said second computer is a second storage controller; and both storage controllers control same external storage.14. A computer program product as set forth in claim 8 wherein said second computer does not copy the updated data from said second buffer to said second memory region in response to said updated data being sent from said first buffer to said second buffer, whereby said second computer avoids corresponding overhead when an application in said first computer obtains a next lock on said first memory region and said second memory and updates data in said first memory region.15. A computer system comprising:a first computer comprising: a first control program; a first memory region addressable by a first application program executing in said first computer; and a first buffer; a second computer comprising: a second control program; a second memory region addressable by a second application program executing in said second computer; and a second buffer; and an exclusive lock for both said first and second memory regions; and whereinsaid first application requests to update data in said first memory region, and in response, said first control program determines if any application in said first or second computer currently has the lock for said first or second memory regions, and if not, said first control program obtains the lock for said first application, partially updates said data and subsequently notifies said second application to read said partially updated data, and said second application reads said partially updated data while said first application retains said lock, and after said second application reads said partially updated data, said first application completes the update of said data in said first memory region.16. A computer system as set forth in claim 15 wherein said first computer is a first storage controller; said second computer is a second storage controller; and both storage controllers control same external storage.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.