Electronic device managing computing powers of peripheral electronic devices and operating method of electronic device
An electronic device includes a processor, an interface bus connected to the processor, and a plurality of compute express link (CXL) devices connected to the interface bus, the plurality of CXL devices including two or more different types of CXL devices. The processor is configured to output a combined program code to the interface bus, the combined program code including a plurality of program codes, each of the plurality of CXL devices are configured to receive the combined program code from the interface bus, and each of the plurality of CXL devices is configured to store one of the plurality of program codes of the combined program code which corresponds to a type of the CXL device, in order to change operation of the CXL device according to the stored one of the plurality of program codes.
1 . An electronic device comprising:
a processor;
an interface bus connected to the processor; and
a plurality of compute express link (CXL) devices connected to the interface bus, the plurality of CXL devices including two or more different types of CXL devices,
wherein the processor is configured to output a combined program code to the interface bus, the combined program code including a plurality of program codes,
wherein each CXL device of the plurality of CXL devices is configured to receive the combined program code from the interface bus, and
wherein each CXL device of the plurality of CXL devices is configured to store one of the plurality of program codes of the combined program code which corresponds to a type of each of the CXL devices of the plurality of CXL devices, in order to change an operation of each of the CXL devices of the plurality of CXL devices according to the corresponding stored one of the plurality of program codes.
2 . The electronic device of claim 1 , wherein each of the plurality of program codes corresponds to one of the two or more different types of the plurality of CXL devices.
3 . The electronic device of claim 2 , wherein the combined program code further includes a plurality of micro codes corresponding to the plurality of program codes.
4 . The electronic device of claim 3 , wherein each micro code of the plurality of micro codes, when executed by the plurality of CXL devices, is configured to return information about the type of CXL device corresponding to a program code following each of the micro codes of the plurality of micro codes.
5 . The electronic device of claim 4 , wherein each of the plurality of CXL devices is configured to store the program code following one of the plurality of micro codes that returns the information identifying a CXL device type which corresponds to the CXL device.
6 . The electronic device of claim 1 , wherein, as each of the plurality of CXL devices executes its stored one of the plurality of program codes, the plurality of CXL devices are configured to co-work a task designated by the combined program code.
7 . The electronic device of claim 1 , wherein the two or more different types of CXL devices include a smart solid state drive (SSD), a CXL SSD, and at least one device other than the smart SSD and the CXL SSD.
8 . The electronic device of claim 7 , wherein one of the plurality of program codes which corresponds to the smart SSD includes two or more different sub-program codes.
9 . The electronic device of claim 8 , wherein a micro code corresponding to the smart SSD includes test codes corresponding to the two or more different sub-program codes.
10 . The electronic device of claim 1 , wherein the interface bus includes a flex interface bus configured to support a peripheral component interconnect express (PCIe) and a CXL.
11 . An electronic device comprising:
a nonvolatile memory device; and
a controller configured to communicate with an external interface bus and to control the nonvolatile memory device,
wherein the controller is configured to receive a combined program code from the external interface bus, the combined program code including a plurality of program codes and including a plurality of micro codes corresponding to the plurality of program codes, each micro code of the plurality of micro codes corresponding to a type of the electronic device,
wherein the controller is configured to store a corresponding program code of the plurality of program codes of the combined program code, in order to change an operation of the controller according to the corresponding stored program code of the plurality of program codes, and
wherein the controller is configured to sequentially execute the plurality of micro codes to identify the corresponding program code.
12 . The electronic device of claim 11 , wherein,
the controller is configured to sequentially execute the plurality of micro codes until a result of executing a specific micro code of the plurality of micro codes identifies the type of the electronic device of the corresponding program code, and
the controller is configured to store the corresponding program code of the plurality of program codes which corresponds to the specific micro code of the plurality of micro codes, the specific micro code corresponding to the type of the electronic device.
13 . The electronic device of claim 12 , wherein,
a program code corresponding to the specific micro code of the plurality of micro codes includes sub-program codes of two or more different types, and
the specific micro code of the plurality of micro codes which corresponds to the type of the electronic device includes test codes corresponding to the sub-program codes of the two or more different types.
14 . The electronic device of claim 13 , further comprising:
at least two computation cores having different types,
wherein the at least two computation cores are configured to execute corresponding test codes of the specific micro code of the plurality of micro codes which corresponds to the type of the electronic device.
15 . The electronic device of claim 14 , wherein one of the at least two computation cores having a shortest execution time of a test code of the corresponding test codes is configured to execute a corresponding sub-program code of the sub-program codes.
16 . The electronic device of claim 13 , wherein the sub-program codes include a register-transfer level (RTL) code, a hardware-in-the-loop (HIL) code, and an internal operating system (OS) program.
17 . The electronic device of claim 13 , wherein,
the specific micro code of the plurality of micro codes which corresponds to the type of the electronic device further includes at least one requirement check code, and
the controller is configured to further check whether the sub-program codes are executable, by executing the at least one requirement check code.
18 . The electronic device of claim 17 , wherein the at least one requirement check code checks at least one of:
a look-up-table (LUT) size of a field programmable gate array (FPGA) or an embedded FPGA (eFPGA);
a hardware buffer size;
a multi-threading capability; and
a machine learning accelerator.
19 . The electronic device of claim 11 , wherein,
the controller is configured to communicate with the external interface bus through a peripheral component interconnect express (PCIe) and a compute express link (CXL), and
the corresponding program code of the plurality of program codes includes a code interacting with an external device based on the CXL.
20 . An operating method of an electronic device which includes a nonvolatile memory device and a controller, the operating method comprising:
receiving, at the controller, a combined program code from an external interface bus, the combined program code including a plurality of micro codes and a plurality of program codes corresponding to the plurality of micro codes, each micro code of the plurality of micro codes corresponding to a type of the electronic device;
storing, at the controller, a corresponding program code of the plurality of program codes, in order to change an operation of the controller according to the corresponding stored program code of the plurality of program codes; and
identifying, at the controller, one of the plurality of program codes corresponding to the type of the electronic device by sequentially executing the plurality of micro codes.