PCMCIA PC Card/Flash Card Software Architecture
Document Revision 3.1
09-Feb-96
Introduction
PCMCIA stands for Personal Computer Memory Card
International Association which is the organization that
develops the PC CARD standard. This standard is an
interface standard that describes the hardware and
software for credit card sized computer cards. These
include, but are not limited to, Flash memory cards such
as the ones offered by Intel Corp. This document
provides an overview of the PC CARD architecture and
briefly describes Flash related software components of
both a full PCMCIA software suite, and a Flash card
only 'monolithic' software solution. Information is also
provided for the MTD or Memory Technology Driver
architecture.
System Requirements
- x86 processo r-based (286,386,486, Pentium®
Processor, etc. ) PC
- i82365SL PCIC-compatible Socket Controller or equivalent
- DOS 5.0 or above
- Windows* 3.1/95 (if present)
Supported Cards
- Intel Series 2 Flash Cards
- Intel Series 2+ Flash Cards
- Intel Value Series 100 Flash Cards
- Intel Miniature Card Flash Cards
- Others
PC CARD Overview
There are many software layers to the PC CARD standard and many ways those layers can be implemented. In general, they
are briefly described as follows:
- Card Services (CS) coordinates access to PC Cards and manages system resources among multiple clients. CS accesses the
hardware layer via Socket Services.
- Socket Services (SS) provides a standardized interface to the hardware (example: 82365SL PCIC Socket Controller) which controls the sockets for the PC Cards. Socket Services configures sockets for I/O, memory interfaces and controls socket voltage
- FTL: Flash Cards such as the Intel S2/S2+ cards require a special block device driver in order to be utilized as a disk drive.
This driver, known as the Flash Translation Layer (FTL) handles the special requirements of using flash. It can be installed
beneath the MS-DOS FAT file system, making Flash memory media appear as a readable and writeable disk drive. FTL
handles, in software, the tasks of sectorizing the flash erase blocks, handling wear leveling issues, etc.
- CARDRV (MTDDRV) translates file system requests from any software using its flash host and IOCTL interface into PC
CARD Card Services requests, assigns drive letters to PC CARD sockets and returns format and partition characteristics
back to the file system. CARDRV/MTDDRV is a memory client of Card Services.
PC CARD Software Architecture for Flash Cards
Memory Technology Driver (MTD) manipulates the memory card. It has card specific knowledge of the physical
characteristics of the storage medium and the card's specific programming algorithms to read, write and erase the media.
Each MTD registers as a client with Card Services.
Socket Controller (or host controller) manipulates the sockets, system bus timings and manages socket power. The PC Card
Interface Controller (PCIC 82365SL) controls PC card memory, address windowing for I/O space and Interrupt steering.
- Flash Memory Cards are used in a variety of ways. Primarily, the are used to facilitate high performance disk
emulation for the storage of data files and application programs on a purely solid-state removable medium. They are
also used to provide the capability to eXecute-In-Place (XIP) directly from the flash memory thereby improving
performance and saving the cost of redundant DRAM. In a PC Card software environment, the MTD manipulates the
Common Memory Plane (CMP) and Attribute Memory Plane (AMP) of the memory card to provide read, write and
erase functionality.
- ATA device driver, enabler, or Card Services client supports ATA Type II Flash Disk or ATA Type III Hard Disk
PC Cards. The ATA Card Services Client Driver/enabler (not shown) usually loads as a client driver of Card
Services.
Advantages of MTDs with Flash Cards
- Eliminates the redundant code introduced in the integrated generic CARDRVs, which includes code for all the
supported cards.
- Each MTD contains information to manipulate the unique design of its corresponding PC card architecture. The MTD
is the exclusive expert regarding the knowledge of the PC card type. Therefore, it focuses on providing optimized
management of each card's unique architecture.
- Modularizing MTDs for specific cards allows flexibility to load selected cards. Loading selected MTDs will minimize
the memory space allocated. In the future, run-time loads of selected MTDs will be implemented.
- MTDs may be written to load into EMS/XMS/DPMI memory, reducing the overall PC CARD "footprint" of DOS
memory. You may choose to develop this code using the iMTD2BAS source code available from Intel.
Typical PC CARD Modifications to the System CONFIG.SYS
SystemSoft typical CardSoft* or CardWizard* Version
devicehigh=c:\cardsoft\ss365sl.exe <Socket Services>
devicehigh=c:\cardsoft\cs.exe <Card Services>
devicehigh=c:\cardsoft\csalloc.exe <SystemSoft specific resource allocation utility >
devicehigh=c:\cardsoft\atadrv.exe <ATA Client Driver SystemSoft>
devicehigh=c:\cardsoft\mti2p.exe <MTD for Intel S2&S2+ SystemSoft>
devicehigh=c:\cardsoft\mtsram.exe <MTD for SRAM SystemSoft>
devicehigh=c:\cardsoft\imtd2bas.exe <optional MTD Intel>
devicehigh=c:\cardsoft\mtddrv.exe <MTD-Manager Client Driver and Flash Host Interface SystemSoft>
devicehigh=c:\cardsoft\ftl.exe <FTL Block Device Dirver SystemSoft>
devicehigh=c:\cardsoft\cardid.exe <`Super' Client driver for I/O cards SystemSoft>
Typical Utilities
- CSALLOC (SystemSoft) scans the system configuration and reports available resources.
- CARDINFO (SystemSoft) scans the PC CARD slots on a system and reports information pertaining to inserted
cards.
- The CONFIG (SystemSoft) utility provides a windowed pull-down menu interface allowing the user to configure the
system's PC card subsystem and create and manage libraries to change tuple and configuration settings.
- MCFORMAT (SystemSoft) creates FTL partitions for Flash memory cards utilizing SystemSoft FTL.
- Memory Card Diagnostic Utility (MCDiag) (Intel) runs memory card diagnostics for troubleshooting the PC CARD
environment, including the Component Management Registers (CMR) and the Card Information Structure (CIS).
Non-PC Card, Embedded, or Monolithic Architecture Overview
- The standalone, or embedded (monolithic) software design provides an ideal solution for embedded applications. The
generic design integrates all functionality into a simpler driver structure, which eliminates, or greatly reduces the
overhead introduced with the full PC Card architecture.
- The development of the iCARDRV1 device driver preceded the development of the PC Card architecture.
iCARDRV1 contains all of the functionality required to interface an Intel Series 2 and 2+ Flash memory card to DOS
and flash file system or an application that needs to `directly' access flash.
- The FTL monolithic driver solution from M-Systems is well suited for use with flash as the storage medium in an
embedded application. It is very robust, small footprint, and high performance solution for using flash and flash cards
as a 'disk drive'.
FTL (M-Systems) MONOLITHIC ARCHITECTURE |
MONOLITHIC ARCHITECTURE |
|
|
Typical Monolithic Modifications to the System CONFIG.SYS
- Embedded / Monolithic Version - Flash Host Interface
devicehigh=c:\intel\icardrv1.exe <Flash Cards>
- Embedded / Monolithic Version - M-Systems TrueFFS* FTL
devicehigh=c:\TFFS\PCICSS.COM <PC Card Socket controller software>
devicehigh=c:\TFFS\TFFS.COM /window=D000 /size=8192 <FTL>
Typical Utilities
- MCFORMAT (Intel) Format utility for use with iCARDRV1 Flash Host Interface
- Memory Card Diagnostic Utility (MCDiag) (Intel) runs memory card diagnostics for troubleshooting the PC CARD
environment, including the Component Management Registers (CMR) and the Card Information Structure (CIS). Also
used to test and erase flash cards.
- TFORMAT (M-Systems) Flash Card FTL Format Utility. Used like the DOS format command except to format flash
cards with FTL.
- TINFO (M-Systems) FTL Information utility. Used to query the system as to the status of the card, socket, and
TrueFFS* FTL software. This utility will give you the drive letter used by the Flash Card and FTL.
Legal Stuff © 1997 Intel Corporation