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 PDF

Info

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
Application number
KR1020150063981A
Other languages
Korean (ko)
Inventor
김진규
구본태
이주현
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020150063981A priority Critical patent/KR20160131495A/en
Publication of KR20160131495A publication Critical patent/KR20160131495A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • G06F9/4428
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract 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

Disclosed are an apparatus for transforming hardware using JavaScript language and a method using the same. The apparatus for transforming hardware using JavaScript language according to an embodiment of the present invention comprises: a conversion unit that logically reconstructs previously installed hardware using a JavaScript language and converts 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 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.

Description

TECHNICAL FIELD [0001] The present invention relates to an apparatus and a method for converting a hardware using a JavaScript language,

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 application 201, an external JavaScript library 202, a JavaScript library 203 for a reconfigurable logic cell, A hardware API 204, a JavaScript engine 205, a device driver 206, a reconfigured logic cell 207, and an operating system 208.

The JavaScript-based application 201 is a program having a specific purpose executed in a web browser, a terminal execution environment, or the like.

At this time, the JavaScript-based application 201 can perform functions such as image processing and voice processing for video and photographs.

At this time, the JavaScript-based application 201 may be executed with a specific purpose using the external JavaScript library 202.

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 JavaScript application 201. [

The JavaScript engine 205 may be used to execute the JavaScript based application 201.

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 JavaScript engine 205. Google's V8 engine on the market, the JSC engine on the Webkit project, and Spider Monkey on the Mozilla Foundation.

The device driver 206 can physically control the configuration of the reconfigured hardware and the interface corresponding to the input / output of data.

At this time, the device driver 206 may access a specific memory address or perform control of the data interface.

At this time, the device driver 206 may translate the representations of the JavaScript library 203 through the JavaScript engine 205 and map it to actual physical hardware.

The reconstructed logic cell 207 is the same as the high-speed circuit converted by the conversion unit 101 shown in Fig. 1 in the present invention.

At this time, the reconfigurable logic cell 207 may be formed based on the JavaScript language stored in the JavaScript library 203 for the reconfigurable logic cell in the conversion unit 101. [

At this time, there is no limitation on the form of the reconfigured logic cell 207. However, there may be a form in which a desired acceleration function can be reconfigured into a logic by using a processing element (PE) and a large crystal structure and a reconfigurable circuit formed in a memory array form. It is also possible to utilize parametric techniques to design logic that can be synthesized in VHDL or Verilog languages.

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 conversion unit for logically reconfiguring pre-installed hardware using a JavaScript (Java Script) language to convert the pre-installed 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 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:
KR1020150063981A 2015-05-07 2015-05-07 Apparatus for transforming hardware using javascript language and method using the same KR20160131495A (en)

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)

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