KR20160131495A - Apparatus for transforming hardware using javascript language and method using the same - Google Patents
Apparatus for transforming hardware using javascript language and method using the same Download PDFInfo
- Publication number
- KR20160131495A KR20160131495A KR1020150063981A KR20150063981A KR20160131495A KR 20160131495 A KR20160131495 A KR 20160131495A KR 1020150063981 A KR1020150063981 A KR 1020150063981A KR 20150063981 A KR20150063981 A KR 20150063981A KR 20160131495 A KR20160131495 A KR 20160131495A
- Authority
- KR
- South Korea
- Prior art keywords
- hardware
- javascript
- circuit
- converting
- processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G06F9/4428—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
The present invention relates to a technique for converting hardware using a JavaScript language, and more particularly, to a method and system for converting a hardware into a logic circuit corresponding to a purpose of a function using a reconfiguration hardware in a web application written in JavaScript, To improve the processing speed of the image processing apparatus.
Most browsers that run web applications have a JavaScript engine for running JavaScript applications. Typical JavaScript engines include Google's V8 engine, Webkit project's JSC (JavaScritCore) engine, and Mozilla Foundation's Firefox browser, Spidermonkey.
Google's V8 engine is written in C ++ code and supports a variety of hardware platforms, including X86, X64, ARM, and MIPS, and can translate JavaScript code into AST format without any bytecode translation and can be run directly through an interpreter. It also uses various techniques of JIT compiler technology for machine code optimization. Typical features include Hidden Class and Inline Caching technology.
Webkit's JSC engine is primarily built into Apple's Safari browser and is available as open source as the V8. The JSC engine consists of a lexer, a parser, an interpreter, and a just-in-time compiler (JITC). When byte codes are output through the parser block, . In JITC, the baseline JIT, DFG JIT, FTL JIT, etc. are configured to operate by optimizing the machine code step by step according to the optimization level.
Currently, various technologies have been proposed to improve slow performance, which is a big problem in web applications. SIMD (Single Instruction Multiple Data) instruction, and multi-core multi-thread and multi-core WebCL.
First, the SIMD technique is described as follows. SIMD, which can process multiple data using a single instruction, is a technique widely used in Intel as well as ARM. By using SIMD, scalar operations can be extended to four or eight vector operations.
The second is to use multithreading with multicore. Currently, most JavaScript engines operate as a single thread, which is a way of dividing and dividing functions that can be separated in stages into several threads in the engine. For example, assuming that the lexer, parser, and interpreter are running on thread 1, there may be a way for JITC to run on thread 2. This technique is possible because if the JavaScript engine has a function that has a large number of iterations at runtime, it determines whether to activate the JITC by counting the number of executions. At this time, Is generated, the corresponding machine code is sent back to the thread 1, thereby reducing the compilation overhead.
Third, WebCL technology is a heterogeneous computing software technology that uses parallel techniques. WebCL is the API standard for OpenCL's Web version of general computing. Since its inception as a prototype version since 2011, WebCL has released version 1.0 of the standard specification in the Chronos group in 2014. In the embedded system, the expectation of parallel processing of WebCL is expected to increase even more in the trend of increasing number of heterogeneous multicore such as CPU core and GPU core in AP processor. At present, Samsung Webclite is provided as a prototype using Webkit version, and Nokia provides a prototype source for using WebCL in Firefox browser. Motorola also offers node-webcl.
Korean Patent Laid-Open Publication No. 2011-0130611 discloses a technology related to a web platform unit for a mobile terminal capable of linking a web-based application operating in a heterogeneous operating system layer module.
Korean Patent Publication No. 2011-0130611, however, does not disclose any technology that can be used for developing and using JavaScript applications by accelerating hardware reconfiguration and reconstructed hardware.
Therefore, in view of the large penetration rate of smart phones, the utilization rate of websites using JavaScript applications, and the low efficiency of JavaScript applications, there is a need for technologies that can perform JavaScript applications more quickly.
An object of the present invention is to quickly perform an operation using hardware reconfigured in a JavaScript virtual machine.
It is also an object of the present invention to quickly perform operations by reconstructing hardware corresponding to a task actively using a JavaScript language.
It is also an object of the present invention to reconstruct and use hardware corresponding to a job when there is another job after the job is finished.
According to an aspect of the present invention, there is provided an apparatus for converting hardware using a JavaScript language, the apparatus comprising: a converter for logically reconfiguring pre-installed hardware using a JavaScript language and converting the hardware into a high-speed circuit; A processing unit for setting each of the logic circuits in the high-speed circuit as objects of JavaScript, and for processing a job in the web application based on the objects; And a re-conversion unit for re-converting the previously installed hardware into hardware corresponding to the other operation when the operation is completed and another operation is performed.
In this case, the conversion unit may convert the high-speed circuit into an interface definition and a memory definition between the cells constituting the hardware.
At this time, the high-speed circuit may be implemented in the form of processing elements and memories.
At this time, the high-speed circuit can be reconfigured as logic corresponding to each of the functions to be processed.
According to another aspect of the present invention, there is provided a method of converting hardware using a JavaScript language, comprising: logically reconfiguring previously installed hardware using a Java script language and converting the hardware into a high-speed circuit; Setting each of the logic circuits in the high-speed circuit as objects of JavaScript, and processing a job in the web application based on the objects; And re-converting the high-speed circuit to a high-speed circuit corresponding to the other operation when the operation is completed and another operation is performed.
In this case, the high-speed circuit conversion method can be converted into the high-speed circuit by using an interface definition and a memory definition between the cells constituting the hardware.
At this time, the high-speed circuit may be implemented as an array of processing elements and memories.
At this time, the high-speed circuit may be reconfigured as logic corresponding to each of the functions to be processed.
The present invention is capable of processing faster operations using hardware reconstructed in a Javascript virtual machine.
In addition, the present invention can reconstruct the hardware corresponding to the task actively using the JavaScript language, and can quickly process the adaptive operation for each task.
In addition, the present invention is advantageous in that, when another operation is performed after completion of the operation, the hardware corresponding to the operation can be reconfigured and used.
1 is a block diagram illustrating a hardware conversion apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram showing that a hardware conversion apparatus is applied to perform an operation. FIG.
3 is a diagram showing hardware before conversion in a hardware conversion apparatus according to an embodiment of the present invention.
4 is a diagram illustrating the use of JavaScript in performing a conversion in the hardware conversion apparatus according to an embodiment of the present invention.
5 is a diagram showing a high-speed circuit after being converted in the hardware conversion apparatus according to an embodiment of the present invention.
6 is a flowchart illustrating a hardware conversion method according to an embodiment of the present invention.
The present invention will now be described in detail with reference to the accompanying drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shapes and sizes of the elements in the drawings and the like can be exaggerated for clarity.
Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
1 is a block diagram illustrating a hardware conversion apparatus according to an embodiment of the present invention.
Referring to FIG. 1, a hardware conversion apparatus according to an embodiment of the present invention includes a conversion unit 101, a processing unit 102, and a reconversion unit 103.
The conversion unit 101 logically reconstructs pre-installed hardware using a Java script language and converts it into a high-speed circuit.
At this time, the pre-installed hardware may be a switch, a buffer, and a processing element.
At this time, the pre-installed hardware may be configured as a system bus connecting the core, memory, switches, and buffers inside the CPU. The description thereof will be given in Fig.
At this time, hardware can be logically reconfigured using a Java script language.
Logically reconfiguring means that, when processing a job using hardware, each part can process each step by dividing into parts corresponding to the steps performed in the job.
For example, when performing the calculation for the sum of 1 and 2, the steps of receiving the numbers (1, 2), converting 1, 2 into binary numbers, converting into binary numbers and performing addition , And a step of performing the exponentiation and then converting the decimal number to decimal number.
In this case, the logical reconstruction means that the hardware is logically reconfigured so that it can independently process the input part of numbers (1 and 2), the part to convert to binary number, the part to perform prefix, and the part to convert to decimal number .
The processing unit 102 sets each of the logic circuits in the high-speed circuit converted by the conversion unit 101 as an object of a JavaScript script, and processes jobs in the web application based on the objects.
At this time, the logic circuit, when performing a task,
Means each part independently processed.
For example, when performing the calculation for the sum of 1 and 2, the steps of receiving the numbers (1, 2), converting 1, 2 into binary numbers, converting into binary numbers and performing addition A circuit for processing the input of the number, a circuit for processing the operation for converting the binary number, a circuit for processing the operation for performing the buffer, a decimal number May be logic circuits. ≪ RTI ID = 0.0 >
At this time, each of the logic circuits can be set as an object of JavaScript, and the work inside the web application can be processed based on the objects.
The re-switching unit 103 can re-convert the high-speed circuit to a high-speed circuit corresponding to another operation when the operation is finished and another operation is performed.
For example, when the previous task performs calculations on the sum of 1 and 2, the steps of receiving the numbers (1, 2), converting 1, 2 to binary respectively, converting to binary, A circuit for processing a job for converting a binary number into a binary number, a circuit for processing a job for performing a buffer, , And converted into a decimal number. If the next task is to perform the calculation for the difference between 2 and 1, the circuit performing the addition among the original circuits may be reconverted to the circuit performing the subtraction to perform another operation.
At this time, there is no restriction on the method of re-conversion. For example, when the previous operation is completed, the information converted to the high-speed circuit can be deleted and converted to a high-speed circuit corresponding to another operation.
FIG. 2 is a diagram showing that a hardware conversion apparatus is applied to perform an operation. FIG.
Referring to FIG. 2, generating and performing an acceleration circuit using the present invention includes a JavaScript-based
The JavaScript-based
At this time, the JavaScript-based
At this time, the JavaScript-based
The reconfigurable JavaScript library 203 reconfigures the hardware into an acceleration circuit using a JavaScript language.
For example, it is possible to describe the connection relation of hardware of a basic unit such as memory, adder and multiplier of a specific size by using a reconfigurable JavaScript library 203, and control flow for input / output interface Etc. may be configured using a JavaScript language.
More specifically, for example, when calculating the sum of 1 and 2, the steps of receiving the numbers (1, 2), converting 1 and 2 to binary, converting to binary, A circuit for processing a job of converting a binary number, a circuit for processing a job for performing a wormhole, A circuit for processing a task for converting into a decimal number can be performed by using a language stored in the JavaScript library 203. [
The hardware API 204 may call a function to use the reconstructed hardware.
For example, when a 2D-FFT (Fast Fourier Transform) or a 2D-DCT (Discrete Cosine Transform) operation for image processing is used and the reconstructed hardware is reconstructed in the form for processing 2D-FFT or 2D-DCT , The hardware API 204 may provide an interface written in JavaScript so that it can be used in the
The
At this point, the JavaScript engine first decomposes the source of JavaScript into a series of tokens.
In addition, a connection relationship with a node can be created using a decomposed token, and a syntax tree can be generated.
Next, a byte code corresponding to the intermediate representation of the JavaScript source and the machine language can be generated using a syntax tree.
At this time, the generated bytecode can be interpreted and executed, or a frequently executed function in the bytecode can be optimized to generate a machine language for high-speed execution.
At this time, there is no restriction on the kind of the
The
At this time, the
At this time, the
The reconstructed
At this time, the
At this time, there is no limitation on the form of the reconfigured
3 is a diagram showing hardware before conversion in a hardware conversion apparatus according to an embodiment of the present invention.
Referring to FIG. 3, the hardware includes a CPU, a memory, a circuit (composed of BUFFER, PE, and SWITCH), and a system bus connecting the circuit, the CPU, and the memory.
The present invention relates to the conversion of the circuit shown in Fig. 3 into the circuit of Fig.
At this time, the circuit shown in Fig. 3 may be an actual physical circuit.
At this time, the conversion unit 110 converts the circuit shown in Fig. 3 into a circuit shown in Fig. 5 using a JavaScript language.
4 is a diagram illustrating the use of JavaScript in performing a conversion in the hardware conversion apparatus according to an embodiment of the present invention.
Referring to FIG. 4, it can be seen that the JavaScript code used to convert an actual physical circuit into an acceleration circuit is shown.
At this time, the code can be written based on the functions performed by actual physical circuits. For example, this means writing a code for the functions performed by the PE1, BUF1, BUF2, and PE2 constituting the actual physical circuit.
BUF2.in = PE2.out described in FIG. 4; For example, this means that the result of PE2 is input to BUF2. In this way, you can set the relationship between the hardware so that actual physical circuits can perform each function using JavaScript code.
5 is a diagram showing a high-speed circuit after being converted in the hardware conversion apparatus according to an embodiment of the present invention.
Referring to FIG. 5, it can be seen that the actual physical circuit shown in FIG. 3 has been converted into a virtual circuit composed of blocks performing respective functions.
The virtual circuit shown in FIG. 5 is a virtual circuit having a function of performing image processing, and uses a JavaScript language to perform each function (3D output function, Vector Matrix storage function, conversion function, and image input function) , And the conversion is performed.
6 is a flowchart illustrating a hardware conversion method according to an embodiment of the present invention.
Referring to FIG. 6, first, a high-speed circuit is converted using a JavaScript language (S601).
At this time, the pre-installed hardware may be a switch, a buffer, and a processing element.
At this time, the pre-installed hardware may be configured as a system bus connecting the core, memory, switches, and buffers inside the CPU. The description thereof will be given in Fig.
At this time, hardware can be logically reconfigured using a Java script language.
Logically reconfiguring means that, when processing a job using hardware, each part can process each step by dividing into parts corresponding to the steps performed in the job.
For example, when performing the calculation for the sum of 1 and 2, the steps of receiving the numbers (1, 2), converting 1, 2 into binary numbers, converting into binary numbers and performing addition , And a step of performing the exponentiation and then converting the decimal number to decimal number.
In this case, the logical reconstruction means that the hardware is logically reconfigured so that it can independently process the input part of numbers (1 and 2), the part to convert to binary number, the part to perform prefix, and the part to convert to decimal number .
In addition, each logic circuit in the high-speed circuit is set as an object (S602).
In addition, the work inside the web application is processed based on the object (S603).
At this time, the logic circuit, when performing a task,
Means each part independently processed.
For example, when performing the calculation for the sum of 1 and 2, the steps of receiving the numbers (1, 2), converting 1, 2 into binary numbers, converting into binary numbers and performing addition A circuit for processing the input of the number, a circuit for processing the operation for converting the binary number, a circuit for processing the operation for performing the buffer, a decimal number May be logic circuits. ≪ RTI ID = 0.0 >
At this time, each of the logic circuits can be set as an object of JavaScript, and the work inside the web application can be processed based on the objects.
In addition, it is checked whether another operation is performed (S604). If another operation is being performed, the high-speed circuit is re-converted to a high-speed circuit corresponding to another operation (S605).
For example, when the previous task performs calculations on the sum of 1 and 2, the steps of receiving the numbers (1, 2), converting 1, 2 to binary respectively, converting to binary, A circuit for processing a job for converting a binary number into a binary number, a circuit for processing a job for performing a buffer, , And converted into a decimal number. If the next task is to perform the calculation for the difference between 2 and 1, the circuit performing the addition among the original circuits may be reconverted to the circuit performing the subtraction to perform another operation.
At this time, there is no restriction on the method of re-conversion. For example, when the previous operation is completed, the information converted to the high-speed circuit can be deleted and converted to a high-speed circuit corresponding to another operation.
As described above, the hardware conversion using the JavaScript language according to the present invention
It is to be understood that the present invention is not limited to the above-described embodiments, and that various changes and modifications may be made without departing from the scope of the present invention. have.
201: JavaScript-based applications
202: External JavaScript library
203: JavaScript library for reconfigurable logic cells
204: Hardware API
205: JavaScript engine
206: Device Drivers
207: reconstructed logic cell
208: Operating system
Claims (1)
A processing unit for setting each of the logic circuits in the high-speed circuit as objects of JavaScript and processing a job in the web application based on the objects; And
When the above operation is completed and another operation is performed, the previously installed hardware
A re-changing unit for re-converting the data into hardware corresponding to the another job;
The hardware conversion apparatus comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150063981A KR20160131495A (en) | 2015-05-07 | 2015-05-07 | Apparatus for transforming hardware using javascript language and method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150063981A KR20160131495A (en) | 2015-05-07 | 2015-05-07 | Apparatus for transforming hardware using javascript language and method using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160131495A true KR20160131495A (en) | 2016-11-16 |
Family
ID=57541118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150063981A KR20160131495A (en) | 2015-05-07 | 2015-05-07 | Apparatus for transforming hardware using javascript language and method using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20160131495A (en) |
-
2015
- 2015-05-07 KR KR1020150063981A patent/KR20160131495A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10140251B2 (en) | Processor and method for executing matrix multiplication operation on processor | |
US8972958B1 (en) | Multistage development workflow for generating a custom instruction set reconfigurable processor | |
US7877741B2 (en) | Method and corresponding apparatus for compiling high-level languages into specific processor architectures | |
US20120096445A1 (en) | Method and apparatus for providing portability of partially accelerated signal processing applications | |
US11720344B2 (en) | Code hot-update method and device, storage medium, processor, and terminal | |
US9489183B2 (en) | Tile communication operator | |
US20200409664A1 (en) | Transpose operations using processing element array | |
JP2014504750A (en) | Agile communication operator | |
US9977663B2 (en) | Technologies for optimizing sparse matrix code with field-programmable gate arrays | |
Sunitha et al. | Performance improvement of CUDA applications by reducing CPU-GPU data transfer overhead | |
Ruan et al. | ST-Accel: A high-level programming platform for streaming applications on FPGA | |
WO2012067803A2 (en) | Map transformation in data parallel code | |
WO2017035748A1 (en) | Code compiling method and code complier | |
CN110333867B (en) | Multiparty secure computing data processing method, device and system | |
EP2988268B1 (en) | Rendergraph compilation and use thereof for low-latency execution | |
CN112559954A (en) | FFT algorithm processing method and device based on software-defined reconfigurable processor | |
US20030126589A1 (en) | Providing parallel computing reduction operations | |
CN111552478B (en) | Apparatus, method and storage medium for generating CUDA program | |
de Dinechin et al. | Deep learning inference on the mppa3 manycore processor | |
KR20160131495A (en) | Apparatus for transforming hardware using javascript language and method using the same | |
US20210026630A1 (en) | Method executed by computing device, apparatus, device and computer-readable storage medium | |
Tseng et al. | Automatic data layout transformation for heterogeneous many-core systems | |
Castelló et al. | Exploring the suitability of remote GPGPU virtualization for the OpenACC programming model using rCUDA | |
Kaouane et al. | SysCellC: Systemc on cell | |
Blindell et al. | Synthesizing code for GPGPUs from abstract formal models |