Electronic device, information processing device, adapter device, and information exchange system
First Claim
1. An electronic device detachably connectable to an information processing device, comprising:
- a card-shaped housing including a plurality of terminals;
an input/output means having a function for data input/output by serial transfer and a function for data input/output by parallel transfer; and
register including a write area and a read area, the register storing a setting indicating the functions of the electronic device and storing a prescribed value at a prescribed address indicating that the input/output means has the function for data input/output by serial transfer and the function for data input/output by parallel transfer.
1 Assignment
0 Petitions
Accused Products
Abstract
An electronic device, information processing device, and adapter device enabling smooth internal circuit switching and other operations are provided. In the electronic device 200, the serial interface 21 and parallel interface 22 are connected via a data bus 23 to the register 24 and data buffer 25, and this data buffer 25 is connected to an ECC circuit 26. The register 24, data buffer 25 and ECC circuit 26 are connected to the memory 28 via a memory interface and sequencer circuit 27. The register 24 is connected to the controller 29, and data input and output is controlled. The interfaces 21 and 22 are switched by means of control signals from this controller 29. That is, switching between these interfaces 21 and 22 is performed through discrimination, by the controller 29, of a portion of the data written to the register 24.
23 Citations
67 Claims
-
1. An electronic device detachably connectable to an information processing device, comprising:
-
a card-shaped housing including a plurality of terminals;
an input/output means having a function for data input/output by serial transfer and a function for data input/output by parallel transfer; and
register including a write area and a read area, the register storing a setting indicating the functions of the electronic device and storing a prescribed value at a prescribed address indicating that the input/output means has the function for data input/output by serial transfer and the function for data input/output by parallel transfer.
-
-
2. The electronic device according to claim 1, wherein the prescribed value stored in the register is transmitted to the information processing device via the input/output means in response to a register read instruction from the information processing device.
-
3. The electronic device according to claim 1, wherein the input/output means executes the function for data input/output by serial transfer or executes the function for data input/output by parallel transfer based on a setting from the information processing device.
-
4. The electronic device according to claim 1, wherein the function for data input/output by serial transfer is executed in an initial state of the electronic device, the function for data input/output by parallel transfer is executed when a prescribed identification bit in the write area of the register is changed from an initial value, and the function for data input/output by serial transfer is executed when the prescribed identification bit in the write area of the register is returned to the initial value.
-
5. The electronic device according to claim 1, wherein the functions of the electronic device include memory functions and an address conversion function which converts between logical addresses for data processing and physical addresses for the memory functions, and
a prescribed code is recorded at a predetermined address of the register indicating that the electronic device includes the address conversion function.
-
6. The electronic device according to claim 1, wherein
the functions of the electronic device include a plurality of types of memory functions, and a prescribed code is recorded at a predetermined address of the register indicating the types of the memory functions.
-
7. An electronic device detachably connectable to an information processing device, comprising:
-
a card-shaped housing including a plurality of terminals;
a register including a write area and a read area, the register storing a setting indicating the functions of the electronic device, the functions including a memory function managed using physical addresses, and an address conversion function which converts between logical addresses for data processing and physical addresses for the memory function, wherein a prescribed code is stored at a predetermined address of the register indicating that the electronic device includes the address conversion function.
-
-
8. The electronic device according to claim 7, further comprising:
input/output means having a function for data input/output by serial transfer and a function for data input/output by parallel transfer, wherein a prescribed value is stored at a prescribed address of the register indicating that the input/output means has the function for data input/output by serial transfer and the function for data input/output by parallel transfer.
-
9. The electronic device according to claim 7, further comprising:
-
input/output means having a function for data input/output by serial transfer and a function for data input/output by parallel transfer, wherein a prescribed value is stored in the register indicating that the input/output means has both the function for data input/output by serial transfer and the function for data input/output by parallel transfer, and the prescribed value stored in the register is transmitted to the information processing device via the input/output means in response to a register read instruction from the information processing device.
-
-
10. The electronic device according to claim 7, further comprising:
input/output means having a function for data input/output by serial transfer and a function for data input/output by parallel transfer, wherein the input/output means executes the function for data input/output by serial transfer or executes the function for data input/output by parallel transfer based on a setting from the information processing device.
-
11. The electronic device according to claim 7, further comprising:
-
input/output means having a function for data input/output by serial transfer and a function for data input/output by parallel transfer, wherein the function for data input/output by serial transfer is executed in an initial state of the electronic device, the function for data input/output by parallel transfer is executed when a prescribed identification bit in the write area of the register is changed from an initial value, and the function for data input/output by serial transfer is executed when the prescribed identification bit in the write area of the register is returned to the initial value.
-
-
12. The electronic device according to claim 7, wherein
the functions of the electronic device include a plurality of types of memory functions, and a prescribed value is recorded at a predetermined address of the register indicating the types of the memory functions.
-
13. An information processing device which performs data input and output with a detachable electronic device, the information processing device comprising:
control means which reads a setting in a register of the electronic device indicating a function of the electronic device and which determines from a value in the register whether the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer.
-
14. The information processing device according to claim 13, wherein
when the value in the register of the electronic device indicates that the input/output means of the electronic device has only a function for data input/output by serial transfer, the control means recognizes the electronic device as a first electronic device, and when the value in the register of the electronic device indicates that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the control means recognizes the electronic device as a second electronic device.
-
15. The information processing device according to claim 13, further comprising:
-
transmission means, wherein when the control means determines from the value in the register that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the transmission means transmits to the electronic device an instruction to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
-
16. The information processing device according to claim 13, wherein when the control means determines from the value in the register that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer:
-
the function for data input/output by serial transfer is executed in an initial state of the electronic device, when the function for data input/output by parallel transfer is to be executed, a prescribed identification bit in a write area of the register is changed from an initial value, and when the function for data input/output by serial transfer is to be executed, the prescribed identification bit in the write area of the register is returned to the initial value.
-
-
17. The information processing device according to claim 13, wherein
the function of the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and when a prescribed code indicating that the electronic device includes the address conversion function is written at a prescribed address in the register, the address conversion function is rendered inactive.
-
18. The information processing device according to claim 13, wherein
the electronic device includes a plurality of types of memory functions, and when a particular code indicating one of the memory function types is written at a prescribed address of the register, processing is performed according to the one of the memory function types.
-
19. An information processing device which performs data input and output with a detachable electronic device, the information processing device comprising:
control means which reads a setting in a register of the electronic device indicating a function of said the electronic device and which determines from a code in the register whether the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device.
-
20. The information processing device according to claim 19, wherein
when the code in the register of the electronic device indicates that the electronic device includes the address conversion function, the control means recognizes the electronic device as a first electronic device, and when the code in the register of the electronic device indicates that the electronic device does not include the address conversion function, the control means recognizes the electronic device as a second electronic device.
-
21. The information processing device according to claim 19, wherein
the control means reads a value in the register of the electronic device and determines based on the value whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, when the value in the register of the electronic device indicates that the input/output means of the electronic device has only a function for data input/output by serial transfer, the control means recognizes the electronic device as a first electronic device, and when the value in the register of the electronic device indicates that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the control means recognizes the electronic device as a second electronic device.
-
22. The information processing device according to claim 19, wherein the control means includes transmission means, the control means reading a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and
if the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the transmission means transmits to the electronic device an instruction to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
23. The information processing device according to claim 19, wherein the control means reads a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and when the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer:
-
the function for data input/output by serial transfer is executed in an initial state of the electronic device;
when the function for data input/output by parallel transfer is to be executed, a prescribed identification bit in a write area of the register is changed from an initial value; and
when the function for data input/output by serial transfer is to be executed, the prescribed identification bit in the write area of the register is returned to the initial value.
-
-
24. The information processing device according to claim 19, wherein the electronic device includes a plurality of types of memory functions, and
when a particular code indicating one of the memory function types is written at a prescribed address in the register, processing is performed according to the one of the memory function types.
-
25. An adapter device provided between an electronic device and an information processing device which performs data input and output with the electronic device, the adapter device comprising:
control means which reads a value setting in a register of the electronic device indicating a function of the electronic device, and which determines from a value in the register whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer.
-
26. The adapter device according to claim 25, wherein
when the value setting in the register of the electronic device indicates that the input/output means of the electronic device has only a function for data input/output by serial transfer, the control means recognizes the electronic device as a first electronic device, and when the value setting in the register of the electronic device indicates that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the control means recognizes the electronic device as a second electronic device.
-
27. The adapter device according to claim 25, further comprising transmission means, wherein
when the control means determines from the value in the register that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the transmission means transmits to the electronic device an instruction to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
28. The adapter device according to claim 25, wherein when the control means determines from the value in the register that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer:
-
the function for data input/output by serial transfer is executed in an initial state of the electronic device, when the function for data input/output by parallel transfer is to be executed, a prescribed identification bit in a write area of the register is changed from an initial value, and when the function for data input/output by serial transfer is to be executed, the prescribed identification bit in the write area of the register is returned to the initial value.
-
-
29. The adapter device according to claim 25, further comprising:
-
an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions of the electronic device, and when a prescribed code is written at a prescribed address in the register indicating that the electronic device includes the address conversion function, the address conversion function in the adapter device is rendered inactive.
-
-
30. The adapter device according to claim 25, wherein
the electronic device includes a plurality of types of memory functions, and when a particular code indicating one of the memory function types is written at a prescribed address of the register, processing corresponding to the one of the memory function types is performed.
-
31. The adapter device according to claim 25, wherein
when the setting in the register indicates that the electronic devices includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, the control means recognizes the electronic device as a first electronic device, and when the setting in the register indicates that the electronic device does not include the address conversion function, the control means recognizes the electronic device as a second electronic device.
-
32. An adapter device provided between an electronic device and an information processing device which performs data input and output with the electronic device, the adapter device comprising:
control means which reads a setting in a register of the electronic device indicating a function of the electronic device and which determines from a code in the register whether the electronic device has an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device.
-
33. The adapter device according to claim 32, wherein
when the code in the register of the electronic device indicates that the electronic device includes the address conversion function, the control means recognizes the electronic device as a first electronic device, and when the code in the register of the electronic device indicates that the electronic device does not include the address conversion function, the control means recognizes the electronic device as a second electronic device.
-
34. The adapter device according to claim 32, wherein
the control means reads a value in the register of the electronic device and determines from the value whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, when the value in the register of the electronic device indicates that the input/output means of the electronic device has only a function for data input/output by serial transfer, the control means recognizes the electronic device as a first electronic device, and when the value in the register of the electronic device indicates that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the control means recognizes the electronic device as a second electronic device.
-
35. The adapter device according to claim 32, wherein the control means includes transmission means, the control means reading a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and
if the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the transmission means transmits to the electronic device an instruction to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
36. The adapter device according to claim 32, wherein the control means reads a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and when the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer:
-
the function for data input/output by serial transfer is executed in an initial state of the electronic device;
when the function for data input/output by parallel transfer is to be executed, prescribed identification bit in a write area of the register is changed from an initial value; and
when the function for data input/output by serial transfer is to be executed, the prescribed identification bit in the write area of the register is returned to the initial value.
-
-
37. The adapter device according to claim 32, wherein the electronic device includes a plurality of types of memory functions, and when a particular code indicating one of the memory function types is written at a prescribed address in the register, processing is performed according to the one of the memory function types.
-
38. An information exchange system, comprising:
-
an information processing device; and
an electronic device detachably connectable to the information processing device, wherein the information processing device determines whether the electronic device includes a register having a write area, a read area, and a setting stored therein indicating the functions of the electronic device, when the electronic device does not include the register, the electronic device is recognized as a first electronic device having only memory functions, and when the electronic device includes the register, the electronic device is recognized as a second electronic device having memory functions and functions other than the memory functions, the other functions executable by the electronic device being identified based on the setting stored in the register, and when the electronic device includes the register, an instruction is transmitted from the information processing device to the electronic device to read the register, and a value stored in the register is read via input/output means in the electronic device to determine whether the input/output means has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer.
-
-
39. The information exchange system according to claim 38, wherein, when the electronic device includes the register, an instruction is transmitted from the information processing device to the electronic device to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
40. The information exchange system according to claim 38, wherein
the function for data input/output by serial transfer is executed in an initial state of the electronic device, when the function for data input/output by parallel transfer is to be executed, a prescribed identification bit in a write area of the register is changed from an initial value, and when the function for data input/output by serial transfer is to be executed, the prescribed identification bit in the write area of the register is returned to the initial value.
-
41. The information exchange system according to claim 38, wherein the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and a prescribed code is stored at a predetermined address of the register indicating that the electronic device includes the address conversion function.
-
42. The information exchange system according to claim 38, wherein
the information processing device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and a prescribed code is stored at a prescribed address of the register indicating that the electronic device includes the address conversion function.
-
43. The information exchange system according to claim 38, wherein
the electronic device includes a plurality of types of memory functions, and when a particular code indicating one of the memory function types is stored at a prescribed address of the register, processing is performed according to the one of the memory function types.
-
44. The information exchange system according to claim 38, wherein the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and
the value stored in the register indicates that the electronic device includes the function for data input/output by parallel transfer.
-
45. The information exchange system according to claim 38, wherein
the information processing device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and when the value stored in the register indicates that the electronic device does not include the function for data input/output by parallel transfer, the address conversion function is used.
-
46. An information exchange system, comprising:
-
an information processing device; and
an electronic device detachably connectable to the information processing device, the electronic device including control means which reads a setting in a register of the electronic device indicating a function of the electronic device, and which determines from a code in the register whether the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses for the electronic device.
-
-
47. The information exchange system according to claim 46, wherein
when code in the register indicates that the electronic device includes the address conversion function, the control means recognizes the electronic device as a first electronic device, and when the code in the register indicates that the electronic device does not include the address conversion function, the control means recognizes the electronic device as a second electronic device.
-
48. The information exchange system according to claim 46, wherein
the control means reads a value in the register of the electronic device and determines from the value whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, if the value in the register of the electronic device indicates that the input/output means of the electronic device has only a function for data input/output by serial transfer, the control means recognizes the electronic device as a first electronic device, and if the value in the register of the electronic device indicates that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the control means recognizes the electronic device as a second electronic device.
-
49. The information exchange system according to claim 46, wherein the control means includes transmission means, the control means reading a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and
if the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the transmission means transmits to the electronic device an instruction to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
50. The information exchange system according to claim 46, wherein the control means reads a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and if the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer:
-
the control means executes the function for data input/output by serial transfer in an initial state of the electronic device;
when the function for data input/output by parallel transfer is to be executed, the control means changes a prescribed identification bit in a write area of the register from an initial value; and
when the function for data input/output by serial transfer is to be performed, the control means returns the prescribed identification bit in the write area of the register to the initial value.
-
-
51. The information exchange system according to claim 46, wherein
the electronic device includes a plurality of types of memory functions, and when a particular code indicating one of the memory function types is written at a prescribed address in the register, processing is performed corresponding to the one of the memory function types.
-
52. An information exchange system, comprising:
-
an information processing device;
an electronic device detachably connectable to the information processing device; and
an adapter device, wherein the information processing device determines whether the electronic device includes a register having a write area, a read area and a setting stored therein indicating the functions of the electronic device, when the electronic device does not include the register, the electronic device is recognized as a first electronic device having only memory functions, and when the electronic device includes the register, the electronic device is recognized as a second electronic device having memory functions and functions other than the memory functions, the other functions executable by the electronic device being identified based on the setting stored in the register, and when the electronic device includes the register, an instruction is transmitted from the information processing device to the electronic device to read the register, and a value stored in the register is read via input/output means in the electronic device to determine whether the input/output means has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer.
-
-
53. The information exchange system according to claim 52, wherein when the electronic device includes the register, an instruction is transmitted from the information processing device to the electronic device to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
54. The information exchange system according to claim 52, wherein
the function for data input/output by serial transfer is executed in an initial state of the electronic device, when the function for data input/output by parallel transfer is to be executed, a prescribed bit in a write area of the register is changed from an initial value, and when the function for data input/output by serial transfer is to be performed, the prescribed identification bit in the write area of the register is returned to the initial value.
-
55. The information exchange system according to claim 52, wherein the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and prescribed code is stored at a predetermined address of the register indicating that the electronic device includes the address conversion function.
-
56. The information exchange system according to claim 52, wherein the information processing device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and
when a prescribed code is stored at a prescribed address the register indicating that the electronic device includes the address conversion function, the address conversion function in the information processing device is rendered inactive.
-
57. The information exchange system according to claim 52, wherein the adapter device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and
when a prescribed code is written at a prescribed address the register indicating that the electronic device has the address conversion function, the address conversion function in the adapter device is rendered inactive.
-
58. The information exchange system according to claim 52, wherein the electronic device includes a plurality of types of memory functions, and when a particular code is written at a prescribed address of the register indicating one of the memory function types, processing is performed corresponding to the one of the memory function types.
-
59. The information exchange system according to claim 52, wherein the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and
when a prescribed value indicating that the electronic device includes the function for data input/output by parallel transfer is stored at a predetermined address in the register, address conversion function is employed.
-
60. The information exchange system according to claim 52, wherein the information processing device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and
when a prescribed value indicating that the electronic device includes the function for data input/output by parallel transfer is not stored at a prescribed address of the register, the address conversion function is employed.
-
61. The information exchange system according to claim 52, wherein the adapter device includes an address conversion function which converts between logical addresses for data processing and physical addresses for memory functions in the electronic device, and
when a prescribed value indicating that the electronic device includes the function for data input/output by parallel transfer is not stored at a prescribed address of the register, the address conversion function in the adapter device is employed.
-
62. An information exchange system, comprising:
-
an information processing device;
an electronic device detachably connectable to the information processing device; and
an adapter device having control means which reads a setting in a register of the electronic device indicating a function of the electronic device, and which determines from a code in the register whether the electronic device includes an address conversion function which converts between logical addresses for data processing and physical addresses in the electronic device.
-
-
63. The information exchange system according to claim 62, wherein
when the code in the register indicates that the electronic device includes the address conversion function, the control means recognizes the electronic device as a first electronic device, and when the code in the register indicates that the electronic device does not include the address conversion function, the control means recognizes the electronic device as a second electronic device.
-
64. The information exchange system according to claim 62, wherein
the control means reads a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, if the value in the register of the electronic device indicates that the input/output means of the electronic device has only a function for data input/output by serial transfer, the control means recognizes the electronic device as a first electronic device, and if the value in the register of the electronic device indicates that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the control means recognizes the electronic device as a second electronic device.
-
65. The information exchange system according to claim 62, wherein
the control means includes transmission means, the control means reading a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and if the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, the transmission means transmits to the electronic device an instruction to execute the function for data input/output by serial transfer or to execute the function for data input/output by parallel transfer.
-
66. The information exchange system according to claim 62, wherein the control means reads a value in the register of the electronic device to determine whether input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer, and if the control means determines from the value that the input/output means of the electronic device has both a function for data input/output by serial transfer and a function for data input/output by parallel transfer:
-
the function for data input/output by serial transfer is executed in an initial state of the electronic device;
when the function for data input/output by parallel transfer is to be executed, a prescribed identification bit in a write area of the register is changed from an initial value; and
when the function for data input/output by serial transfer is to be performed, the prescribed identification bit in the write area of the register is returned to the initial value.
-
-
67. The information exchange system according to claim 62, wherein
the electronic device includes a plurality of types of memory functions, and when a particular code is stored at a prescribed address of the register indicating one of the memory function types, processing is performed corresponding to the one of the memory function types.
Specification