Virtual Memory Card Controller for Smartcard File System Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current mass storage devices, such as MMC and SD cards, lack the ability to perform complex operations beyond read and write due to their design as block devices, limiting interactions with host devices and restricting the use of sophisticated command sets, especially in smartcards.
Innovation Solution
The implementation of a Virtual Memory Card Controller (VMCC) that facilitates bi-directional communication and arbitrary pre-processing/post-processing of data through standard read/write operations, allowing for the creation of special files and sockets to trigger specific applications without modifying hardware or host file managers, and enabling the use of ISO protocols and file systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If mass storage devices use standard block device interface (MMC/SD/USB), then compatibility with host devices is improved, but operational complexity is limited to basic read/write only
Solution Approach 1:
The patent introduces a Virtual Memory Card Controller (VMCC) as an intermediary software layer between the host device and the mass storage device. This VMCC intercepts standard read/write operations and translates them into complex operations by invoking applications on the mass storage device CPU, thereby enabling sophisticated functionality while maintaining compatibility with simple host interfaces
Solution Approach 2:
The patent creates virtual copies of files and data structures through the VMCC. By copying data to special files on the mass storage device and using virtual memory mapping, the system enables complex operations without requiring the host to directly manage the underlying block device complexity
2Productivity
If mass storage device is configured as block device, then data transfer efficiency is improved, but access to hierarchical file system is lost
Solution Approach 1:
The VMCC acts as an intermediary that bridges the block device interface and the hierarchical file system. It receives block-level operations from the host, translates them into file system operations, and invokes applications on the mass storage device CPU to handle complex file system access patterns
Solution Approach 2:
The patent segments the file system access into separate operations handled by different components. The host manages block-level transfers for efficiency, while the VMCC and mass storage device CPU handle file system operations separately, allowing each component to optimize its function
3Device complexity
If mass storage device CPU only receives operation type and sector number, then device simplicity is maintained, but ability to perform complex operations is limited
Solution Approach 1:
The VMCC serves as an intermediary that receives complex operations from the host, translates them into simple sector-level commands for the mass storage device CPU, and manages the complexity of invoking appropriate applications. This keeps the mass storage device CPU simple while enabling complex functionality
Solution Approach 2:
The mass storage device CPU performs self-service by executing applications that are invoked through the VMCC. The CPU receives simple sector operations but can trigger complex applications that handle file system operations, data processing, and communication protocols independently
Data Source
AI summary
The claimed subject matter can provide an architecture that can transparently provide more robust interactions between a host device and a smartcard or other mass media storage device by way of block level read or write operations provided as part of a standard interface protocol. A virtual controller can be installed on the smartcard to manage access to the data store of a smartcard. The virtual controller can provide special objects (e.g., files, directories, partitions . . . ) to the host, and upon an access to one of these special files, call an application to manage pre- or post-processing of the data transferred between the host and the smartcard.


