Improvement of reliability using nonvolatile memory cache in discless network-bootable computer
Abstract
Problem to be solved.To provide a reliable diskless network bootable computer using a local non-volatile memory (NVM) cache. The NVM cache 208 is used by a computer when the network is temporarily unavailable or slow. Later, when network conditions improve, this cache 208 will be synchronized between the remote boot server 183 with the remote storage volume 182. It is determined whether to store the data in the NVM cache 208 or in the remote storage volume 182. The data sent to the remote storage volume 182 is written by the transaction, and if there is a network failure or the transaction completion message is not received, the data is cached in the NVM cache 208. [Selection diagram] Fig. 1

Term
Term ended
Projected expiry passed 25 November 2023, 2.8 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
39 claims: 8 independent, 31 dependent
- 1リモートストレージボリュームを備えるネットワークに結合される不揮発性メモリ(NVM)キャッシュを備えるコンピュータのコンピュータオペレーティングシステムを信頼性を維持しつつ動作させるための方法であって、 アプリケーションと前記コンピュータオペレーティングシステムの一方からデータを受信するステップと、 前記データを前記NVMキャッシュと前記リモートストレージボリュームのどちらにストアすべきか判断するステップと、 前記NVMキャッシュにストアされる前記データを前記NVMキャッシュに書き込むステップと、 前記データが前記リモートストレージボリュームにストアされる場合、前記データをトランザクションによって前記リモートストレージボリュームに書き込むステップと、 ネットワーク障害が発生している場合またはトランザクション完了メッセージを受信していない場合、前記リモートストレージボリュームにストアされる前記データを前記NVMキャッシュにキャッシュするステップと、 前記ネットワークが動作しているときに、前記NVMキャッシュにキャッシュした前記リモートストレージボリュームにストアされる前記データをトランザクションによって前記リモートストレージボリュームに書き込むステップとを含むことを特徴とする方法。
- 2ネットワークの障害中に処理を続行するためにユーザが必要とするデータを前記NVMキャッシュにストアするステップをさらに含むことを特徴とする請求項1に記載の方法。
- 3前記ユーザの過去の使用履歴を維持管理するステップをさらに含むことを特徴とする請求項2に記載の方法。
- 4前記コンピュータオペレーティングシステムのパワーダウン(power down)と前記コンピュータオペレーティングシステムの休眠との少なくとも一方の前に、前記NVMキャッシュにストアされる、前記データと静的設定データと動的設定データを決定するステップをさらに含むことを特徴とする請求項1に記載の方法。
- 5前記データと前記静的設定データと前記動的設定データを決定するステップが、 ネットワーク障害が発生した場合に、ユーザが作業を続行できるようにする、前記データと1組の静的設定データと1組の動的設定データを決定するステップを含むことを特徴とする請求項4に記載の方法。
- 6前記データと前記1組の静的設定データと前記1組の動的設定データを決定するステップが、デスクトップ設定を決定することと、キーボード設定を決定することと、前記コンピュータオペレーティングシステムのパワーダウンと前記コンピュータオペレーティングシステムの休眠との少なくとも1つの前に使用されていたデータファイルを決定することの少なくとも1つを含むことを特徴とする請求項5に記載の方法。
- 7前記コンピュータに電源を入れたときに前記ネットワークが利用できない場合、前記NVMキャッシュからブートするステップをさらに含むことを特徴とする請求項5に記載の方法。
- 8前記ネットワークが利用可能になった後で、前記NVMキャッシュ内および前記リモートストレージボリューム内の前記データを同期させるステップをさらに含むことを特徴とする請求項7に記載の方法。
- 9前記NVMキャッシュからブートするステップをさらに含むことを特徴とする請求項5に記載の方法。
- 10前記NVMキャッシュ内および前記リモートストレージボリューム内のデータの変更日付をチェックするステップと、前記NVMキャッシュ内の前記データより日付が新しいデータを前記リモートストレージボリュームからロードするステップをさらに含むことを特徴とする請求項9に記載の方法。
- 11前記ネットワークが利用できない場合、前記NVMキャッシュを使用して休眠状態から処理を再開するステップをさらに含むことを特徴とする請求項5に記載の方法。
- 12電力停止中に前記アプリケーションから送信された、前記リモートストレージボリュームに送信すべきデータを前記NVMキャッシュに書き込むステップをさらに含むことを特徴とする請求項1に記載の方法。
- 13前記トランザクション完了メッセージを受信していない場合、前記リモートストレージボリュームにデータを再送信するステップをさらに含むことを特徴とする請求項1に記載の方法。
- 14前記NVMキャッシュにストアされた、前記データおよび静的設定データおよび動的設定データが、前記リモートストレージボリュームにストアされた、データおよび静的設定データおよび動的設定データと整合しているかどうか判断するステップをさらに含むことを特徴とする請求項1に記載の方法。
- 15前記NVMキャッシュにストアされた、前記データおよび静的設定データおよび動的設定データと、前記リモートストレージボリュームにストアされた、データおよび静的設定データおよび動的設定データが整合していない場合、前記NVMキャッシュにストアされた、前記データおよび静的設定データおよび動的設定データ、または前記リモートストレージボリュームにストアされた、データおよび静的設定データおよび動的設定データを更新するステップをさらに含むことを特徴とする請求項11に記載の方法。
- 16リモートストレージボリュームを備えるリモートブートサーバを動作させる方法であって、 不揮発性メモリ(NVM)キャッシュを備えるコンピュータからブート要求を受信するステップと、 前記リモートストレージボリュームにストアされた静的設定データおよび動的設定データを使用して前記コンピュータをブートするステップと、 前記リモートストレージボリュームにストアされるデータを前記コンピュータから受信するステップと、 前記データを前記リモートストレージボリュームに書き込むステップとを含むことを特徴とする方法。
- 17前記データを前記リモートストレージボリュームに書き込むステップが完了したときに、前記コンピュータに完了メッセージを送信するステップをさらに含むことを特徴とする請求項16に記載の方法。
- 18前記NVMキャッシュ内のデータの更新と前記NVMキャッシュにストアされたデータの前記リモートストレージボリュームへの複製の一方を周期的に実行するステップをさらに含むことを特徴とする請求項16に記載の方法。
- 19前記リモートブートサーバが不揮発性メモリキャッシュを備え、 初期化時間が前記リモートストレージボリューム内のディスクドライブのスピンアップ時間とほぼ等しい、静的設定データおよび動的設定データを前記不揮発性メモリキャッシュにストアするステップと、 前記コンピュータシステムのブート中と前記コンピュータシステムの休眠状態からの再開中の少なくとも一方で、前記ディスクドライブが回転数を上げているうちに前記静的設定データおよび動的設定データを初期化するステップと、 前記コンピュータシステムの前記ブート中と前記コンピュータシステムの休眠状態からの前記再開中の少なくとも一方で、前記ディスクドライブにストアされた残りの設定データを初期化するステップとをさらに含むことを特徴とする請求項16に記載の方法。
- 20不揮発性メモリキャッシュを備えるコンピュータのためのネットワークスタックであって、 何が前記不揮発性メモリキャッシュおよびリモートストレージボリュームにストアされているか判断する予測キャッシュコントロールモジュールと、 前記予測キャッシュコントロールモジュールと通信し、エラーを処理するファイルシステムフィルタドライバと、 前記ファイルシステムフィルタドライバと通信するファイルシステムであって、前記リモートストレージボリューム内のハードディスクへファイルをストアし、かつ取り出すためのファイルシステムと、 前記ファイルシステムおよび前記不揮発性メモリキャッシュと通信する書込みキャッシュフィルタドライバと、 前記書込みキャッシュフィルタドライバと通信するネットワークプロトコルレイヤと、 前記ネットワークプロトコルレイヤおよび前記リモートストレージボリュームと通信するネットワークアダプタドライバとを含むことを特徴とするネットワークスタック。
- 21前記書込みキャッシュフィルタドライバと前記不揮発性メモリキャッシュとの間に、前記書込みキャッシュフィルタドライバおよび前記不揮発性メモリキャッシュと通信する不揮発性キャッシュドライバを含むことを特徴とする請求項20に記載のネットワークスタック。
- 22ネットワーク障害が発生している場合、前記書込みキャッシュフィルタドライバは、前記リモートストレージボリュームに送信されるべきデータを前記不揮発性メモリキャッシュに書き込むことを特徴とする請求項20に記載のネットワークスタック。
- 23前記書込みキャッシュフィルタドライバはさらに、前記ファイルシステムフィルタドライバおよび前記予測キャッシュコントロールモジュールと通信することを特徴とする請求項20に記載のネットワークスタック。
- 24コンピュータ内で信頼性を維持しつつコンピュータオペレーティングシステムを動作させるステップを実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータがリモートストレージボリュームを備えるネットワークに結合される不揮発性メモリ(NVM)キャッシュを備え、前記ステップが、 アプリケーションと前記コンピュータオペレーティングシステムの一方からデータを受信するステップと、 前記データを前記NVMキャッシュと前記リモートストレージボリュームのどちらにストアすべきか判断するステップと、 前記データが前記リモートストレージボリュームにストアされる場合、前記データをトランザクションによって前記リモートストレージボリュームに書き込むステップと、 ネットワーク障害が発生している場合またはトランザクション完了メッセージを受信していない場合、前記リモートストレージボリュームにストアされる前記データを前記NVMキャッシュにキャッシュするステップと、 前記ネットワークが動作しているときに、前記NVMキャッシュにキャッシュした前記リモートストレージボリュームにストアされる前記データをトランザクションによって前記リモートストレージボリュームに書き込むステップとを含むことを特徴とするコンピュータ可読媒体。
- 25前記NVMキャッシュにストアされる前記データを前記NVMキャッシュに書き込むことを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ可読媒体。
- 26ネットワークの障害中に処理を続行するためにユーザが必要とするデータを前記NVMキャッシュにストアすることを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ可読媒体。
- 27前記ユーザの過去の使用履歴を維持管理することを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ可読媒体。
- 28前記コンピュータオペレーティングシステムのパワーダウンと前記コンピュータオペレーティングシステムの休眠との少なくとも一方の前に、前記NVMキャッシュにストアされる前記データおよび静的設定データおよび動的設定データを決定するステップを含む前記ステップをさらに実行するためのコンピュータ実行可能命令を有することを特徴とする請求項24に記載のコンピュータ可読媒体。
- 29前記データおよび静的設定データおよび前記動的設定データを決定する前記ステップが、ネットワーク障害が発生した場合にユーザが作業を続行できるようにする、前記データと1組の静的設定データと1組の動的設定データとを決定することを含むことを特徴とする請求項28に記載のコンピュータ可読媒体。
- 30前記コンピュータに電源を入れたときに前記ネットワークが利用できない場合、前記NVMキャッシュからブートすることを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項29に記載のコンピュータ可読媒体。
- 31前記ネットワークが利用できない場合、前記NVMキャッシュを使用して休眠状態から処理を再開することを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項29に記載のコンピュータ可読媒体。
- 32パワーダウン中に前記アプリケーションから送信された、前記リモートストレージボリュームに送信すべきデータを前記NVMキャッシュに書き込むことを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ可読媒体。
- 33前記トランザクション完了メッセージを受信していない場合、前記リモートストレージボリュームにデータを再送信することを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ可読媒体。
- 34前記データおよび静的設定データおよび動的設定データが、前記ディスクドライブにストアされた、データおよび静的設定データおよび動的設定データと整合しているかどうか判断するステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ可読媒体。
- 35前記NVMキャッシュにストアされた、前記データおよび静的設定データおよび動的設定データと、前記リモートストレージボリュームにストアされた、データおよび静的設定データおよび動的設定データが整合していない場合、前記NVMキャッシュにストアされた、前記データおよび静的設定データおよび動的設定データの更新と、前記NVMキャッシュにストアされた、データおよび静的設定データおよび動的設定データの前記リモートストレージボリュームへの複製の一方を実行することを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項34に記載のコンピュータ可読媒体。
- 36リモートストレージボリュームを備えるリモートブートサーバを動作させるステップを実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記ステップが、 不揮発性メモリ(NVM)キャッシュを備えるコンピュータからブート要求を受信するステップと、 前記リモートストレージボリュームにストアされた静的設定データと動的設定データを使用して前記コンピュータをブートするステップと、 前記リモートストレージボリュームにストアされるデータを前記コンピュータから受信するステップと、 前記データを前記リモートストレージボリュームに書き込むステップとを含むことを特徴とするコンピュータ可読媒体。
- 37前記データを前記リモートストレージボリュームに書き込むステップが完了したときに、前記コンピュータに完了メッセージを送信することを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項36に記載のコンピュータ可読媒体。
- 38前記NVMキャッシュ内のデータの更新と前記NVMキャッシュにストアされたデータの前記リモートストレージボリュームへの複製の一方を周期的に実行することを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項36に記載のコンピュータ可読媒体。
- 39前記リモートブートサーバが不揮発性メモリキャッシュを備え、 初期化時間が前記リモートストレージボリューム内のディスクドライブのスピンアップ時間とほぼ等しい、静的設定データおよび動的設定データを前記不揮発性メモリキャッシュにストアするステップと、 前記コンピュータシステムのブート中と前記コンピュータシステムの休眠状態からの再開中の少なくとも一方で、前記ディスクドライブが回転数を上げているうちに前記静的設定データおよび動的設定データを初期化するステップと、 前記コンピュータシステムの前記ブート中と前記コンピュータシステムの休眠状態からの前記再開中の少なくとも一方で、前記ディスクドライブにストアされた残りの設定データを初期化するステップとを含むステップを実行するためのコンピュータ実行可能命令をさらに有することを特徴とする請求項36に記載のコンピュータ可読媒体。
Independent claims39
51 paragraphs, as filed
The present invention generally relates to a network bootable computer, and more particularly to a diskless network-bootable computer.
The hard disk is one of the essential components that make up today's personal computers (PCs). In today's PC architecture, the primary system hard disk and other PC components are extremely tightly coupled and physically co-located for proper functioning. This basic requirement for building a PC creates many problems, inefficiencies, and constraints. For example, current architectures force users to store and manage important user "states" (documents, files, settings, authentication, etc.) locally on the hard disk in their desktop PCs. ..
This architecture is responsible for the high cost of supporting and managing the infrastructure of stand-alone and networked PCs in information technology (IT) organizations. In addition, corporate IT organizations are unable to properly manage corporate assets stored on individual hard drives. For example, managing program backups and restores on a desktop-by-desktop basis is inefficient and difficult. Problems involving non-booting hard drives require service calls and / or physical access to the PC. Desktop storage is not managed by professionals, so corporate assets are often lost. Also, IT organizations cannot directly manage user status, making it difficult to "control" unauthorized use of PCs.
Because the main system hard disk and other PC components are tightly coupled and physically co-located, the opportunity to pool user storage within the enterprise is lost. The average disk space required by today's enterprise users is about 5GB. The smallest hard drive in today's PCs is about 30GB (according to Moore's Law, it's expected to grow to 40GB, 60GB, and 80GB in the future). This means that the average PC used by businesses today has more than 80% of unused disk space.
Storage management has made remarkable progress over the last five to ten years. By virtualizing LUNs (logical disk units) and managing storage seamlessly "behind" these virtualized resources, the cost of managing corporate storage has been significantly reduced. The storage that resides on the user's desktop cannot benefit from these advances.
This tight coupling and the PC's reliance on the internal hard drive creates other derivative problems that users experience. Hard drives take a long time to spin up. This time occupies most of the time required to boot or resume the PC from dormancy. Hard drives are one of the few in-PC components that have moving parts. Therefore, hard drives are the least reliable PC component and one of the largest sources of heat and sound generated by PCs.
To solve these problems, the PC industry has repeatedly tried to remove hard disks from corporate PCs. Many of these attempts to create disk-less "net" PCs use technologies such as BOOT-P and PXE (Preboot Execution Environment) to boot and run from centralized storage. It is a thing. None of these attempts were successful. One of the reasons these attempts were unsuccessful is the consistent, low-latency "block" access that PC architectures and operating systems require to operate reliably, with Ethernet®. ) And TCP / IP cannot be guaranteed. Another reason is that important files, such as page files and system registry files, must be local to each PC so that users can use them with confidence. In addition, the vast majority of PC applications, such as email, file sharing, and web access, require the operating network to be working properly.
<p> User productivity is negatively impacted if the network is not operating with reliability and optimal levels. For example, a common failure in today's networks can last as long as 5 to 6 seconds. If the operating system was processing the page at the time of the failure, that data could be lost.</p>
<p> The present invention is network diskless in a computer with a non-volatile memory (NVM) cache connected to a network to which a remote boot server with one or more remote storage volumes is connected. Provides a method and system for operating a networked diskless computer operating system while maintaining reliability. When it receives data from an application or operating system during processing, it receives predictive cache control. module) determines whether to store the data in the NVM cache or in a remote storage volume. When storing data on a remote storage volume, the transaction writes the data to the remote storage volume. If there is a network failure, or if no transaction completion message is received, the data to be stored in the remote storage volume is cached in the NVM cache, and when the network is up, the transaction causes that data to be NVM. Write to a remote storage volume from the cache. If the transaction completion message is not received, the data is resent to the remote storage volume.</p><p> Stores the data needed to maintain a user's history of prior use and keep the user processing during a network failure in the NVM cache based on the user's history of prior use. .. Stores data, including static configuration data and dynamic configuration data, in the NVM cache before turning off the computer or putting the computer to sleep. These data, a set of static configuration data, and a set of dynamic configuration data include desktop settings, keyboard settings, data files that were used before turning off the computer or putting the computer to sleep. Is included. When the computer is turned on, if the network is not available, the computer will be cold booted from the NVM cache.</p><p> The remote boot server receives a boot request from the computer and boots the computer using the static and dynamic configuration data stored on the remote storage volume. The server sends a completion message to the computer when the process of writing data to the remote storage volume is complete. The remote boot server also has a non-volatile memory cache that is sized to store static and dynamic configuration data and has an initialization time approximately equal to the spin-up time of the disk drive of the remote storage volume. When the network boots, or when the computer boots or resumes processing from dormant state, the disk drive spins during at least one of booting the computer system and resuming the computer system from dormant state. The static and dynamic configuration data stored in the remote boot server's non-volatile memory cache is initialized while increasing the number to initialize the remaining configuration data stored on the disk drive. ..</p><p> The network stack of the present invention is a predictive cache control module that determines what is stored in the NVM cache and remote storage volumes, and a file system filter driver (file) that handles errors such as the NVM cache becoming full. A system filter driver), a file system for storing and retrieving files to the hard disk in the remote storage volume, and an NVM cache of data to be sent to the remote storage volume in the event of a network failure. Write cache filter driver to write to, and iSCSI, etc. to send packet data by transaction to the network protocol layer, which encapsulates the packet data for transmission over the network. Block mode network storage driver Includes a driver) and a network adapter driver that sends packets over the network to remote storage volumes. In one embodiment, an NVM cache driver is used to interface with the NVM cache.</p><p> Further features and advantages of the present invention will become apparent from the detailed description of the following exemplary embodiments with reference to the accompanying drawings.</p>
Although the appended claims describe in detail the features of the invention, the invention will be best understood along with its purpose and advantages by reading the following detailed description in conjunction with the accompanying drawings. Will be able to.
The present invention provides a local storage cache that the system uses when the network becomes temporarily unavailable or slow, so that PC users are not affected by network failures. To. The storage cache will be synchronized with centralized storage later when network conditions improve. The larger the storage cache, the less susceptible users are to network failures. Non-volatile solid-state device memory is used for the local storage cache.
NVM is still so expensive that it is not possible at this time to replace all the hard disks in your PC with NVM. However, you can add a relatively small capacity NVM of around 256MB to your PC and configure the NVM as an "intelligent" write cache. This cache provides reliability and performance and can allow system administrators to implement diskless PCs that are booted from a centralized storage pool.
The diskless computer of the present invention is booted from a central storage pool, which has several advantages. For example, the NVM write cache can significantly reduce the impact of slow network latency and can completely remove the hard disk from the desktop and move it to the data center. With the NVM cache, your computer can stay up and running during the majority of network failures. This makes the deployment and operation of computers considerably cheaper for the enterprise. All user desktops could be centrally managed within a data center environment, using tools familiar to IT professionals. By using storage management techniques that use technologies widely used in data centers, such as LUN (logical storage unit) virtualization, it becomes possible to efficiently manage the desktops of all users, resulting in significant cost reductions. It can be realized. For example, desktop volume mirroring, backups, restores, hot-fixes and service pack updates, virus checking and removal, all from the data center in the shortest minimum user down time. It can be carried out.
Another advantage is the ability to deploy desktops in remote offices and manage them centrally. In the event of a computer failure, in most cases you can buy a new computer, plug it in, and it's ready to use, without losing data or bothering IT service professionals. Storage can be pooled and evenly distributed across all user desktops in the enterprise. This greatly improves storage utilization and avoids the need for oversupply of storage that today's user desktops have.
Computers utilizing the present invention achieve faster performance in the event of a DRAM cache miss or page fault on the data in the NVM cache. This is because the read / write latency of NAND flash is 10,000 to 100,000 times faster than that of disk. In addition, the time required for cold boot and resumption from dormancy will be faster.
Moving on to the drawings, the invention is shown in a suitable computing environment. In drawings, the same elements are referenced by the same reference number. The present invention is described in the general context of computer-executable instructions executed by a personal computer, such as a program module, but it is not always necessary to do so. Program modules typically include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. Furthermore, it is possible to practice the present invention using other computer system configurations such as handheld devices, multiprocessor systems, microcomputer-based or programmable home appliances, network PCs, minicomputers, mainframe computers and others. It will be understood by the trader. The present invention can also be implemented in a distributed computing environment in which tasks are performed by remote processing devices linked via a communication network. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
FIG. 1 shows an example of a suitable computing system environment 100 in which the present invention can be implemented. The computing system environment 100 is merely an example of a suitable computing environment and is not intended to suggest a limitation of the scope of use or scope of function of the present invention. It should not be construed that the computing environment 100 depends on or requires any component or combination of components illustrated in the exemplary operating environment 100.
The present invention operates with a number of general purpose or dedicated computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for using the present invention are personal computers, server computers, handheld or laptop devices, multiprocessor systems, microcomputer-based systems, set-top boxes. , Programmable home appliances, network PCs, mini-computers, mainframe computers, distributed computing environments including, but not limited to, any of the above systems or devices.
The present invention will be described in the general context of computer-executable instructions executed by a computer, such as a program module. Program modules typically include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. The present invention can also be implemented in a distributed computing environment in which tasks are performed by remote processing devices linked via a communication network. In a distributed computing environment, program modules can be located on both local computer storage media, including memory storage devices, and remote computer storage media.
Referring to FIG. 1, an exemplary system for carrying out the present invention includes a general purpose computing device in the form of a computer 110. Examples of the components of the computer 110 include, but are not limited to, the system bus 121 that connects various system components such as the processing unit 120, the system memory 130, and the system memory 130 to the processing unit 120. Absent. These components are located on motherboard 111. The system bus 121 may be any of a plurality of types of bus structures using any of a wide variety of bus architectures, including memory buses or memory controllers, peripheral buses, and local buses. For example, such architectures include ISA (Industry Standard Architecture) bus, MCA (Micro Channel Architecture) bus, EISA (Enhanced ISA) bus, and VESA (Video Electronics). Standards Associate (Video Electronics Standards Association) There are, but are not limited to, local buses and PCI (Peripheral Component Interconnect) buses, also known as mezzanine buses.
Computer 110 generally includes a wide variety of computer-readable media. The computer-readable medium may be any commercially available medium accessible by the computer 110, including volatile and non-volatile media, removable media and fixed media. For example, computer-readable media include, but are not limited to, computer storage media and communication media. Computer storage media are volatile and non-volatile media, removable and fixed media implemented by any method and technique for storing information such as computer-readable instructions, data structures, program modules, or other data. Is included. Computer storage media include RAM, ROM, EEPROM, flash memory, or other memory technologies, CD-ROMs, DVDs (digital versatile). disk, digital versatile disk), or other optical disk storage, magnetic cassettes, tapes, magnetic disk storage, or other magnetic storage devices, or other devices that can be used to store desired information and are accessible by computer 110. It includes, but is not limited to, any medium. In communication media, computer-readable instructions, data structures, program modules, or other data are generally implemented by modulated data signals such as carrier waves or other transport mechanisms, and communication media include information distribution media. The term "modulated data signal" means a signal having one or more characteristics set or varied by a method for encoding information into a signal. For example, communication media include, but are limited to, wired media such as wired networks and direct-wired connections, and wireless media such as sound waves, RF, infrared, and other wireless media. It is not something that is done. Any combination of the above is also included in the scope of computer readable media.
System memory 130 includes computer storage media in volatile and / or non-volatile form, such as read-only memory (ROM) 131 and random access memory (RAM) 132. The ROM 131 generally contains a basic input / output system (BIOS) 133 that includes basic routines that support the transfer of information between elements within the computer 110, such as at boot time. RAM 132 generally contains data and / or program modules that are immediately accessible to the processing unit 120 and / or operate on. FIG. 1 shows, but is not limited to, an operating system 134, an application program 135, other program modules 136, and program data 137, as examples.
Computer 110 can also include other removable / fixed, volatile / non-volatile computer storage media. As a mere example, FIG. 1 shows an optical disk drive 151 that reads and writes to a removable non-volatile magnetic disk 152, and an optical disk drive 155 that reads and writes to a removable non-volatile optical disk 156 such as a CD-ROM or other optical medium. It is shown. Other removable / fixed, volatile / non-volatile computer storage media that can be used in an exemplary operating environment include magnetic tape cassettes, flash memory cards, DVDs, digital videotapes, solid element RAM, solid element ROM. Others can be mentioned. The magnetic disk drive 151 and the optical disk drive 155 are generally connected to the system bus 121 by a removable memory interface such as interface 150. NVMs are still so expensive that you can't replace all the hard drives in your computer 110 with NVMs. Therefore, the computer 110 may include a hard drive 141 that is generally connected to the system bus 121 via a fixed memory interface such as interface 140. This hard drive can also have an NVM cache.
The drives and associated computer storage media discussed above, shown in FIG. 1, provide computer 110 with storage for computer-readable instructions, data structures, program modules, and other data. FIG. 1 shows, for example, an operating system 144, an application program 145, other program modules 146, and a remote storage volume 182 that stores program data 147. Note that these components may be the same as or different from the operating system 134, the application program 135, the other program modules 136, and the program data 137. The operating system 144, the application program 145, the other program modules 146, and the program data 147 are numbered differently, indicating that they are at least different copies herein. Remote storage volume 182 is generally central Location), which can contain application programs for multiple users, other program modules, and program data. The user can enter commands and information into the computer 110 via an input device such as a keyboard 162, a pointing device 161, commonly referred to as a mouse, a trackball, or a touchpad. Other input devices (not shown) include microphones, joysticks, gamepads, satellite dishes, scanners and the like. The above and other input devices are often connected to the processing unit 120 via a user input interface 160 coupled to the system bus, but with a parallel port, game port, and USB (universal serial). It may be connected by other interfaces and bus structures such as bus, universal serial bus). The monitor 191 or other type of display device is also connected to the system bus 121 via an interface such as the video interface 190. In addition to the monitor, the computer can include other peripheral output devices such as speakers 197 and printer 196 that can be connected via the output peripheral interface 195.
Computer 110 operates in a network environment using a logical connection to one or more remote computers, such as remote computer 180. The remote computer 180 may be another personal computer, server, router, network PC, peer device, or other general network node and generally includes many or all of the above elements associated with the personal computer 110. However, only the memory storage device 181 is shown in FIG. The logical connections shown in Figure 1 include local area networks (LAN) 171 and wide area networks (WAN) 173, but can also include other networks. Such network environments are common in offices, enterprise-scale computer networks, intranets, and the Internet.
When the personal computer 110 is used in a LAN network environment, the personal computer 110 is connected to the LAN 171 via a network interface or an adapter 170. The personal computer 110, when used in a WAN network environment, generally includes a modem 172 or other means for establishing communication over WAN 173, such as the Internet. Modem 172 may be internal or external and can be connected to system bus 121. The modem is connected directly to the system bus in the figure, but it can also be connected to the system bus via user input interface 160, network adapter 170, or other suitable mechanism. TCP / IP offload engine engine) 174 can be connected to the network adapter 170. The TCP / IP offload engine 174 is commonly used to offload TCP / IP tasks that require a large amount of resources from the processing unit 120 to run. The network adapter 170 and TCP / IP stack are generally part of the network adapter card for iSCSI implementation. The remote storage volume 182, which is generally a non-volatile fixed magnetic medium, is arranged in the remote boot server 183. The remote storage volume 182 is generally connected to the system bus 121 via an interface such as a network adapter 170. The program module or part thereof shown in relation to the personal computer can be stored in the remote storage volume 182. FIG. 1 shows, as an example, a remote application program 185 existing in the memory device 181, but the present invention is not limited to this. It will be appreciated that the network connections illustrated are exemplary and other means of establishing communication links between computers may be utilized.
In the following description, the present invention will be described with reference to the symbolic representations of actions and processes performed by one or more computers, unless otherwise indicated. Therefore, such actions and processes, sometimes referred to as being computer-executed, include operations performed by the processing unit of the computer on electrical signals that represent the data in a structured format. I want you to understand. This operation transforms or maintains data at a location within the computer's memory system and reconfigures or modifies the computer's processing in a manner well known to those of skill in the art. The data structure that holds the data is the physical location of memory with specific attributes defined by the data format. Although the present invention has been described in the above context, it is not intended to be limited thereto, and those skilled in the art will appreciate that the various operations and processes described herein can also be performed in hardware.
The present invention can be practiced in a wide variety of ways. Figure 2 shows an implementation where the NVM cache resides on the hardware of the network adapter card. . This embodiment can be implemented on the current computer by installing the hardware card 200 and related drivers on the computer 110. iSCSI (Internet Small Computer System) Interface, Internet small computer system interface) based hardware card 200 is used. The card 200 is connected to the PCI bus or an equivalent type of bus, which the operating system 134 considers to be the SCSI driver that comes with the system 100. The hardware card 200 includes a SCSI protocol stack, a processor 202 operating with IPSEC, and can support TCP offload. Processor 202 includes ROM 204 and RAM 206 and caches data in NVM cache 208, either voluntarily or as directed by operating system 134. With or without ROM204, the BIOS setup can provide a means to configure the card to connect to a particular network boot server address. The processor implements a storage block-level network protocol stack for communicating with the network boot server 183 with remote storage volume 182 via network interface 212 and network 214. The network interface 212 may be an Ethernet® adapter. The processing unit 120 communicates with the processor 202 through interfaces 216, 218, or other types of interfaces by IOCTL (System Dependent Device Input / Output Control Command) to cache which data blocks to the processor in the NVM cache 208. Provides processing unit 120 with a way to tell which blocks are to be stored on remote storage volume 182. Interface 218 may or may not be present and can be removed if the optional ROM 204 provides a means of booting the BIOS from the card 200.
Next, moving to FIG. 3, another embodiment is shown. The NVM cache 208 is located on the computer's motherboard 111. This embodiment provides better performance and reliability with more advanced prediction algorithms that can be implemented in operating system 134. In this embodiment, the processing unit 120 uses IOCTL and DMA transfers or equivalent to communicate with the remote storage volume 182 over interface 212, storing data blocks in remote storage block 182, or data blocks. Is cached in NVM cache 208. The NVM cache 208 can also be exposed to the processing unit 120 as a native device. It can also be published as type). If exposed as a native device type, the processing unit 120 enumerates it and uses it as a resource. When exposed as a disk, processing unit 120 caches data blocks into NVM cache 208 via interface 220. The interface 220 may be an IDE / ATA protocol, a SCSI protocol, an iSCSI protocol, an NVM cache driver, or the like. Those skilled in the art will appreciate that different embodiments than those shown in FIGS. 2 and 3 can be used. Returning to FIG. 1, the NVM cache 208 may be part of the system memory 130 or may be independent of the system memory 130 if implemented as a native device type. The NVM cache 208 is accessed by cache interface 222. On write, the storage driver stack (discussed herein) uses the NVM cache 208 to immediately cache the data locally and then synchronize it with the remote storage volume 182 at a later time. On read, the storage driver stack reads data back from the NVM cache 208 if it is available and loads it from the remote storage volume 182 only if the blocks in the NVM cache 208 are not available.
The size of the NVM cache 208 is determined based on the amount of data to store and the reliability of the network. When using Microsoft Office® as an application, 64MB of NVM memory has been shown to hold enough data to run offline for an hour. The size depends on the trade-off between higher network failure tolerance levels and the cost of the computer adding the NVM. In one embodiment, a 256MB flash NVM is used and the monetary value of 2004 is expected to cost less than $ 40. This allows the user to use the NVM cache to resume from dormancy or cold boot, and to work on documents stored in the NVM cache 208 until network 214 is up and running. Sufficient data can be stored in the NVM cache 208.
Figures 4 and 5 show how to integrate the NVM cache 208 into an existing chipset. Figure 4 shows the NVM cache 208 in the northbridge / southbridge architecture 400. Northbridge 402 controls processor 120, memory 130, PCI bus, level 2 cache, and all Accelerated Graphics Port (AGP) activity. The Southbridge 404 manages basic forms of I / O within the computer 110, including USB, serial, audio, IDE (Integrated Drive Electronics), and ISA input / output (I / O). Southbridge is an NVM in the same way that Northbridge interfaces with DRAM DIMM408. Implement an interface to DIMM slot 406. This allows users to add NVMs to survive longer network access interruptions, end users add additional NVM208s to add DRAM408s, and hiberfiles to NVM208s. It can be stored to reduce the time it takes to resume from dormancy. NAND flash and other existing NVM technologies can have problems that can be compensated for in the southbridge interface 404. NVM technology has about 10 erase / write cycles<sup>5</sup>After the rounds, the access time may be slowed down and the cell may wear out phenomenon which is no longer usable. The wear characteristics of the NVM are well understood and standard wear leveling technology can be incorporated in the southbridge interface 404 to average erasures and writes.
The accelerated hub architecture 500 in Figure 5 uses a dedicated bus between the controller hub 502 and the I / O controller hub 504 instead of using the PCI bus as used within the northbridge / southbridge architecture. Transfer data with. The memory controller hub 502 provides a central processing unit (CPU) interface, a memory interface, and an AGP interface. The memory controller hub supports single or dual processors with up to 1GB of memory. Memory controller hubs also allow simultaneous processing, which allows for more realistic audio and image delivery. The I / O controller hub 504 provides a direct connection between memory and I / O devices such as internal modems, audio controllers, hard drives, USB ports, and PCI add-in cards. The I / O controller hub 504 implements the interface to the NVM DIMM slot 406 in the same way that the controller hub 502 interfaces with the DRAM DIMM 408.
Next, moving to FIG. 6, the storage driver stack 600 for the embodiment described in FIG. 3 is shown. The operating system 134, the application program 135, and other program modules 136 send data (eg, documents, spreadsheets, files, graphics, etc.) to the storage driver stack 600. The predictive cache control module 602 controls what is stored in the volatile memory 132 and the non-volatile memories 182, 208. The file system filter driver 604 receives data from the predictive cache control module 602. The main function of the file system filter driver 604 is to handle errors properly, such as when the NVM cache 208 is full. The file system filter driver 604 passes data to the remote storage volume 182 via the file system (ie, NTFS) 606 that the operating system 134 uses to store and retrieve files to and from the hard disk.
The write cache filter driver 608 receives data from file system 606 and predictive cache control module 602. The write cache filter driver 608 sends the data cached in the local NVM cache 208 to the NVM cache driver 222. The NVM cache driver 222 detects when the NVM cache 208 is full (ie, full) and sends a message to the file system filter driver 604 notifying that the NVM cache 208 is full. The file system filter driver 604 notifies the predictive cache control module 602 to stop sending data to the NVM cache 208 until the NVM cache 208 has free space.
The write cache filter driver 608 synchronizes the local NVM cache 208 with the remote storage volume 182. When data is stored on the NVM cache 208 and the remote storage volume 182 and the local write cache in the NVM cache 208 needs to be synchronized to the remote storage volume 182, the write cache filter driver 608 uses the NVM cache 208. Read from. During a network failure, the write cache filter driver 608 writes data to be sent to remote storage volume 182 to NVM cache 208 until the network is again reliable and operational. As used herein, network failure refers to the time when a network is stopped due to a power failure or other failure, or when the transmission speed falls below a threshold value. The threshold is selected based on typical data transmission rates during normal operating conditions and during network congestion. When the network becomes reliable and operational again, the data to be sent to the remote storage volume 182 stored in the NVM cache 208 is written to the remote storage volume 182 by a background transaction. This allows System 100 to continue working seamlessly even when the network is not operating reliably. When the write is completed, the remote storage volume 182 sends a transaction completion message. The transactional write allows the write to the remote storage volume 182 to be re-executed even if the write fails or is interrupted (that is, the completion message is not received). Write cache filter driver 608 loses of power during a network failure
The block mode network storage driver 610 receives the data to be sent to the remote storage volume 182. The block mode network storage driver 610 sends data in blocks to the remote storage volume 182. This may be iSCSI or equivalent. iSCSI enables block storage transfers. This is a protocol that encapsulates SCSI commands in TCP / IP, enabling high-performance storage area networks (SANs) on top of standard network technology. The block mode network storage driver 610 converts the data into data blocks (SCSI-3 data if iSCSI is used) and sends the data blocks to network protocol layer 612 (such as TCP / IP). Here, the data block is put into a network protocol packet (such as an IP packet) and sent to the remote storage volume 182 via the network adapter driver 140 (such as NDIS).
As pointed out earlier, the predictive cache control module 602 determines what is stored in the NVM cache 208. Predictive cache control module 602 is generally a long-term user operation (user's) Observe behavior), determine which programs and data the user frequently accesses, and store data, including static and dynamic configuration data, in the NVM cache 208. The terms data used herein include scheduled tasks, financial information, data files and other personal data files. Module 602 is started with default settings until user interaction is predictable. Static and dynamic configuration data is based on past usage history and contains the data that the user needs to continue operations during a network failure. Static setting data is data that does not change periodically. The dynamic setting data is data that is periodically changed and is held for each user. Configuration data includes keyboard devices, pointing devices, USB subsystems, video subsystems, output peripheral drivers (such as printer drivers), operating systems, application programs, and more.
Static configuration data is system configuration data used by all users. For example, for the Windows® operating system, the static configuration data contains bootstrapping code to load the static and dynamic configuration data stored in the NVM cache 208. Other static configuration data in the Windows® operating system includes files, shells, and dynamic links needed to initialize the kernel, such as registry initialization (smss.exe) and video initialization (csrss.exe). Includes services running from the library (svchost.exe), security services such as IPSec (lsass.exe), and network logins. For computer systems that are turned off, the static configuration data stored in the NVM cache 208 is required for the bootstrapping code, kernel initialization file, video initialization file, shell, and computer 110 to work. Services (dynamic link library, etc.), application programs, etc. are included. The dynamic setting data is system setting data held for each user. For example, dynamic configuration data includes desktop settings (background images, icon positions, etc.), security authentication, internet favorite files, fonts, startup programs, keyboard settings, and more.
Next, the operation of the present invention will be described with reference to FIGS. 7 and 8. On the computer system that is about to power down, the data to be stored in the NVM cache 208, static configuration data, and dynamic configuration data are determined (step 700). The data and configuration data are based on the user's history. The data includes the most recently used data files. The dynamic configuration data stored in the NVM cache 208 includes desktop configuration, keyboard configuration, and security authentication. The data, static configuration data, and dynamic configuration data are stored in the NVM cache 208 (step 702). Data that has not been used recently and static and dynamic configuration data that is not needed for processing are sent to remote storage volume 182 for storage (step 704). Data sent to remote storage volume 182 for storage that the operating system cannot control, such as an application writing to remote storage volume 182, is when the network is unavailable or the transaction completion message is not received. Sent to NVM cache 208 for storage (step 706). By doing so, the number of writes to the remote storage volume 182 is reduced, and the power down can be performed more quickly. The computer system is then powered down (step 708).
Similar steps are performed if the system is about to enter a dormant state. The data to be stored in the NVM cache 208, static configuration data, and dynamic configuration data are determined (step 710) and stored in memory (step 712). This data contains the data needed to instantly "repaint" (ie, restore) the graphical user interface. Static configuration data includes services that were in use before going into a dormant state running from kernel files, video files, shells, and dynamic link libraries. Dynamic configuration data includes desktop settings, keyboard settings, and fonts that were in use before going to sleep. The data includes the data files that the user was using before going to sleep. Data that has not been used recently and static and dynamic configuration data that is not needed for processing are sent to remote storage volume 182 for storage (step 714). Data sent to remote storage volume 182 for storage that the operating system cannot control, such as an application writing to remote storage volume 182, is when the network is unavailable or the transaction completion message is not received. Sent to NVM cache 208 for storage (step 716). By doing so, the number of writes to the remote storage volume 182 is reduced, and the power down can be performed more quickly. The computer system then goes dormant (step 718).
If the network is unavailable, the data sent to remote storage volume 182 is stored in the NVM cache 208 until the network is available (step 720). After the network becomes available, synchronize the data in the NVM cache 208 with the data in the remote storage volume 182 (step 722). In one embodiment, the NVM cache 208 is used during system operation. If the application or operating system sends data to remote storage volume 182, store that data in NVM cache 208 before sending it to remote storage volume 182 (step 724). This way, you won't lose any data if the power goes down. When the system is powered down or the system goes into a dormant state, the data to be sent to the remote storage volume 182 stored in the NVM cache 208 is written to the remote storage volume 182 by a transaction. Available space in NVM cache 208 If space) falls below the threshold, transfer recently unused data in the NVM cache to remote storage volume 182 (step 726). By storing the data in the NVM cache 208, the number of times the remote storage volume 182 is accessed during processing is reduced. This reduces the amount of traffic on network 214.
The next step to Figure 9 shows the steps taken to boot the computer system and to bring the computer system back from dormancy. The computer system typically boots from remote storage volume 182 (step 800). If network 214 is unavailable, the computer system boots with static and dynamic configuration data stored in the NVM cache 208 (step 802). When the network becomes available, it gets the required data from the remote storage volume 182. This data is generally data sent by the predictive cache control module 602 to the remote storage volume 182 based on data that the user has not recently accessed. The user experience is that when the user presses the power button, they do not have to wait for access to the remote storage volume, but instead before or as soon as the monitor 191 or other type of display device starts working. , Response An interactive logon screen appears. In one embodiment, the reason for booting the computer is due to a power failure, and the computer is booted from the NVM cache 208. This provides the advantage of avoiding a network "storm" in which PCs on the network attempt to boot the network at the same time after power is restored.
After the user is up and running, the data in the NVM cache 208 can be verified to be consistent with the data on the remote storage volume 182 (step 804). If the data is inconsistent, update the data in NVM cache 208 if the data in the remote storage volume is newer, and NVM cache if the data in NVM cache 208 is newer in date. Replicate the data in 208 to remote storage volume 182. For recovery and backward compatibility purposes (ie, to boot from remote storage volume 182), a help button or switch can be used to bypass the NVM cache 208 and boot the computer system in safe mode. If the system is rebooted due to power loss during a network failure or for any other reason, the write cache filter driver 608 will use the remote storage volume 182 after the system is back in operation and the network is available. Synchronizes with the data in NVM cache 208. When the computer boots from dormant mode, the computer system uses the static and dynamic configuration data stored in the NVM cache 208 and, if necessary, static configuration data and dynamics from the remote storage volume 182. The process is restarted using the setting data (step 806). The data in NVM cache 208 is synchronized with the data in remote storage volume 182 after the computer system resumes processing (step 804).
In another embodiment, computer 110 boots from NVM cache 208 and the boot code checks if the file on remote storage volume 182 is newer by checking the modification date of the file. If the file on remote storage volume 182 is not newer, computer 110 will continue to boot from NVM cache 208. If the file on remote storage volume 182 is newer, the boot code loads the newer file from remote boot server 183. This provides the advantage of avoiding a network "storm" where thousands of PCs attempt to boot the network at the same time after the power to network 214 is restored.
In one embodiment, the network boot server includes an NVM cache. For static and dynamic configuration data stored in the network boot server's NVM cache, the time it takes to initialize the static and dynamic configuration data is the spin-up time of the disk drive in the remote storage server 182. Is selected to be approximately equal to. Static and dynamic configuration data are configuration data that do not require data from the disk drive to initialize. This may include keyboard devices, pointing devices, USB subsystems, video subsystems and more. The size of flash memory required is equal to the size of static and dynamic configuration data. Many operating systems require a flash memory size of 16MB to 64MB.
You can see that we have described a diskless network bootable PC that uses a non-volatile memory cache. Flash memory is a solid-state element and has no moving parts. The user's hard drive can be easily protected at a much lower cost than if it were on the desktop using redundant disk technology such as RAID. The manufacturing cost of a system constructed without a hard disk decreases over time as compared with a system using a mechanical hard disk. Hard disk drives have well-known lower cost due to moving parts and packaging. In contrast, all solid-state element components that make up an intelligent storage cache follow Moore's Law and become more integrated over time (scale). forward). For example, NAND flash has a smaller cell size than DRAM and is already manufactured much cheaper than DRAM. Industry forecasts for NAND flash are that NAND flash will continue to outpace DRAM significantly in terms of cost. There are several candidates currently under development to replace NVM, which are more cost effective and performance-wise than NAND flash. For example, new NVM technologies such as PFRAM (polymer ferroelectric RAM- "plastic memory") or MEMS (micro electromechanical systems) may be available in the future. The PC will benefit significantly from these improvements as this technology will be incorporated into the critical parts of the PC. The reverse is also true, and if the PC does not continue to use NVM technology, other competing devices that utilize NVM will eventually become stronger competitors for the PC.
By combining the present invention with changes to operating systems that separate machines, applications, and user states from a common operating system, system administrators benefit from eliminating the need to manage operating system images for each PC. It will be enjoyed further. Instead of managing for each PC, you only need to manage one operating system for all PCs, and for each machine and each user you only need to manage a much smaller amount of state information.
In view of the many possible embodiments to which the principles of the invention can be applied, the embodiments described herein in conjunction with the drawings are intended to be exemplary only and do not limit the scope of the invention. Please understand that. For example, the elements of an exemplary embodiment shown in software may be implemented in hardware and vice versa, or the configuration and details of an exemplary embodiment without departing from the spirit of the invention. Those skilled in the art will understand that it can be changed. Accordingly, the invention described herein contemplates all embodiments and equivalents thereof that are within the scope of the appended claims.
<figref num="1">It is a block diagram which shows schematic the exemplary computer system which comprises this invention.</figref><figref num="2">It is a block diagram which shows the embodiment of this invention which uses a hardware card.</figref><figref num="3">It is a block diagram which shows another Embodiment of this invention mounted on a motherboard.</figref><figref num="4">It is a block diagram which shows the NVM cache of this invention implemented in the north bridge / south bridge architecture.</figref><figref num="5">It is a block diagram which shows the NVM cache of this invention implemented in the accelerated hub architecture.</figref><figref num="6">It is a block diagram which shows the network stack by this invention.</figref><figref num="7">A flowchart showing the first part of the process of storing static and dynamic configuration data when entering power down or dormancy mode, according to the teachings of the present invention, in order to survive network and power failures without data loss. ..</figref><figref num="8">It is a flowchart which shows the rest of the process of storing static and dynamic setting data.</figref><figref num="9">It is a flowchart which shows the process for the operation after a network failure, the boot of a computer, and the restart operation after a sleep.</figref>
Code description
100 Computing System Environment 110 Computer 111 Motherboard 120 Processing Unit 121 System Bus 130 System Memory 131 Read-Only Memory (ROM) 132 Random Access Memory (RAM) 133 Basic I / O System (BIOS) 134 Operating System 135 Application Program 136 Other Programs Module 137 Program data 140 Fixed memory interface 141 Hard drive 142 Mechanical disk 144 Operating system 145 Application program 146 Other program module 147 Program data 150 Detachable memory interface 151 Disk drive 152 Detachable non-volatile magnetic disk 155 Optical disk drive 156 Detachable Non-volatile optical disk 160 User input interface 161 Pointing device 162 Keyboard 170 Network Adapter 171 Local Area Network (LAN) 172 Modem 173 Wide Area Network (WAN) 174 TCP / IP Offload Engine 180 Remote Computer 181 Memory Storage Device 182 Remote Storage Volume 183 Remote Boot Server 185 Remote Application Program 190 Video Interface 191 Monitor 195 Output Peripheral Interface 196 Printer 197 Speaker 200 Hardware Card 202 Processor 204 ROM 206 RAM 208 NVM Cache 212 Network Interface 214 Network 216 Interface 218 Interface 220 Interface 222 NVM Cache Driver 400 Northbridge / Southbridge Architecture 402 Northbridge 404 Southbridge 406 NVM DIMM Slots 408 DRAM DIMM 500 Accelerated Hub Architecture 502 Controller Hub 504 I / O Controller Hub 506 Firmware Hub 600 Storage Driver Stack 602 Predictive Cache Control Module 604 File System Filter Driver 606 File System 608 Write Cache Filter Driver 610 Block Mode Network Storage Driver 612 Network Protocol Layer
10 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| JP2010055702A | Cited by | Japan | Examiner |
| JP2014164401A | Cited by | Japan | Search report |
| JP2011501317A | Cited by | Japan | Search report |
| JP2011501317A | Cited by | Japan | Examiner |
| JP2007183875A | Cited by | Japan | Examiner |
| JP2011008813A | Cited by | Japan | Examiner |
| JP2007079749A | Cited by | Japan | Search report |
| JP2014164401A | Cited by | Japan | Search report |
| US8495012B2 | Cited by | United States of America | Applicant |
11 members in 4 offices
Members11
| Document | Office | Kind | |
|---|---|---|---|
| EP1424628A2 | European Patent Office (EPO) | A2 | |
| JP2004178596AThis record | Japan | A | |
| US2004153694A1 | United States of America | A1 | |
| TW200415888A | Taiwan Province of China | A | |
| US7036040B2 | United States of America | B2 | |
| US2007006021A1 | United States of America | A1 | |
| EP1424628A3 | European Patent Office (EPO) | A3 | |
| US7454653B2 | United States of America | B2 | |
| JP4205560B2 | Japan | B2 | |
| TWI329441B | Taiwan Province of China | B | |
| EP1424628B1 | European Patent Office (EPO) | B1 |
33 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313113S111 | S111 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Re-examination (zenchi) completed and case transferred to appeal boardAppealJAPANESE INTERMEDIATE CODE: A912A912 | A912 | |
| Transfer to examiner for re-examination before appeal (zenchi)AppealJAPANESE INTERMEDIATE CODE: A911A911 | A911 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Decision of refusalJAPANESE INTERMEDIATE CODE: A02A02 | A02 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on accelerated examinationJAPANESE INTERMEDIATE CODE: A971005A975 | A975 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 | |
| Explanation of circumstances concerning accelerated examinationJAPANESE INTERMEDIATE CODE: A871A871 | A871 | |
| Notification of resignation of power of attorneyJAPANESE INTERMEDIATE CODE: A7424RD04 | RD04 | |
| Notification of appointment of power of attorneyJAPANESE INTERMEDIATE CODE: A7423RD03 | RD03 |
Numbers
- Publication
- 2004178596
- Application
- 394768
Titles2
- Japanese
- ディスクレスネットワークブータブルコンピュータにおける不揮発性メモリキャッシュを用いた信頼性の改善
- English
- Improved reliability with non-volatile memory cache in diskless network bootable computers
Classification
- CPC, 4
- G06F11/1443
- G06F9/4416
- G06F12/0862
- G06F12/0866
- IPC, 5
- G06F12 08
- G06F3 06
- G06F9 445
- G06F11 14
- G06F12 00