3.3. Java Processorsperformance speedup of the JIT compiler can be com การแปล - 3.3. Java Processorsperformance speedup of the JIT compiler can be com ไทย วิธีการพูด

3.3. Java Processorsperformance spe

3.3. Java Processors
performance speedup of the JIT compiler can be combined. Such a processor must support the architectural features specified for the JVM. A Java processoris an execution model that implements the JVM in silicon to directly execute Java bytecodes. Java processors can be tailored specifically to the Java environment by providing hardware support for such features as stack processing, multithreading,and garbage collection. Thus, a Java processor can potentially deliver much better performance for Java applications than a general-purpose processor. Java processors appear to be particularly well-suited for cost-sensitive embedded computing applications.
Some of the design goals behind the JVM definition were to provide portability, security, and small code size for the executable programs. In addition, it was designed to simplify the task of writing an interpreter or a JIT compiler for a specific target processor and operating system. However, these design goals result in architectural features for the JVM that pose significant challenges in developing an effective implementation of a Java processor [O’Connor and Tremblay 1997]. In particular, there are certain common characteristics of Java programs that are different from traditional procedural programming languages. For instance, Java processors are stack-based and must support the multithreading and unique memory management features of the JVM. These unique characteristics suggest that the architects of a Java processor must take into consideration the dynamic frequency counts of the various instructions types to achieve high performance.
The JVM instructions fall into several categories, namely, local-variable loads and stores, memory loads and stores, integer and floating-point computations, branches, method calls and returns, stack operations, and new object creation. Figure 3 shows the dynamic frequencies of the various JVM instruction categories measured in the Java benchmark programsLinPack, CaffeineMark, Dhrystone, Symantec, JMark2.0, and JavaWorld (benchmark program details are provided in Section 5). These dynamic instruction frequencies were obtained by instrumenting the source code of the Sun 1.1.5 JVM interpreter to countthe number of times each type of bytecode was executed.
As seen in this figure, the most frequent instructions are local variable loads (about 30–47% of the total instructions executed), which move operands from the local variables area of the stack to the top of the stack. The high frequency of these loads suggests that optimizing local loads could substantially enhance performance. Method calls and returns are also quite common in Java programs. As seen in Figure 3, they constitute about 7% of the total instructions executed. Hence, optimizing the method call and return process is expected to have a relatively large impact on the performance of Java codes. Since method calls occur through the stack, a Java processor also should have an efficient stack implementation.
Another common operation supported by the JVM is the concurrent execution of multiple threads. As with any multithreading execution, threads will often need to enter synchronized critical sections of code to provide mutually exclusive access to shared objects. Thus, a Java processor should provide architectural support for this type of synchronization. A Java processor must also provide support for memory management via the garbage collection process, such as hardware tagging of memory objects, for instance.
PicoJava-I [McGham and O’Connor 1998; O’Connor and Tremblay 1997] is a configurable processor core that supports the JVM specification. It includes a RISC-style pipeline executing the JVM instruction set. However, only the most common instructions that most directly impact the program execution are implemented in hardware. Some moderately complicated but performance critical instructions are implemented through microcode. The remaining instructions aretrapped and emulated in software by the processor core. The hardware design is thus simplified since the complex, but infrequently executed, instructions do not need to be directly implemented in hardware.
In the Java bytecodes, it is common for an instruction that copies data from a local variable to the top of the stack to precede an instruction that uses it. The picoJava corefoldsthese two instructions into one by accessing the local variable directly and using it in the operation. Thisfolding operation accelerates Java bytecode execution by taking advantage of the singlecycle random access to the stack cache. Hardware support for synchronization is provided to the operating system by using the low-order 2-bits in shared objects as flags to control access to the object.
The picoJava-2 core [Turley 1997], which is the successor to the picoJavaI processor, augments the bytecode instruction set with a number of extended instructions to manipulate the caches, control registers, and absolute memory addresses. These extended instructions are intended to be useful for non-Java application programs that are run on this Java execution core. All programs, however, still need to be compiled to Java bytecodes first, since these bytecodes are the processor’s native instruction set. The pipeline is extended to 6 stages compared to the 4 stages in the picoJava-I pipeline. Finally, thefolding operation is extended to include two local variable accesses, instead of just one.
Another Java processor is the Sun microJava 701 microprocessor [Sun Microsystems. MicroJava-701 Processor]. It is based on the picoJava-2 core and is supported by a complete set of software and hardware development tools. The Patriot PSC1000microprocessor [Patriot Scientific Corporation] is a general-purpose 32-bit, stack-oriented architecture. Since its instruction set is very similar to the JVM bytecodes, the PSC1000 can efficiently execute Java programs.
Another proposed Java processor [Vijaykrishnan et al. 1998] provides architectural support for direct object manipulation, stack processing, and method invocations to enhance the execution of Java bytecodes. This architecture uses a virtual address object cachefor efficient manipulation and relocation of objects. Three cache-based schemes—thehybrid cache, the hybrid polymorphic cache, and the two-level hybrid cache—have been proposed to efficiently implement virtual method invocations. The processor usesextended foldingoperations similar to those in the picoJava-2 core. Also, simple, frequently executed instructions are directly implemented in the hardware, while more complex but infrequent instructions are executed via a trap handler.
TheJava ILP processor [Ebcioglu etal. 1997] executes Java applications on an ILP machine with a Java JIT compiler hidden within the chip architecture. The first time a fragment of Java code is executed, the JIT compiler transparently converts the Java bytecodes into optimized RISC primitives for a Very Long Instruction Word (VLIW) parallel architecture. The VLIW code is saved in a portion of the main memory not visible to the Java architecture. Each time a fragment of Java bytecode is accessed for execution, the processor’s memory is checked to see if the corresponding ILP code is already available. If it is, then the execution jumps to the location in memory where the ILP code is stored. Otherwise, the compiler is invoked to compile the new Java bytecode fragment into the code for the target processor, which is then executed.
While Java processors can deliver significant performance speedups for Java applications, they cannot be used efficiently for applications written in any other language. If we want to have better performance for Java applications, and to execute applications written in other languages as well, Java processors will be of limited use. With so many applications written in other languages already available, it may be desirable to have general-purpose processors with enhanced architectural features to support faster execution of Java applications.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
3.3 การประมวลผลจาวา
speedup ประสิทธิภาพของคอมไพเลอร์ JIT สามารถนำมารวม หน่วยประมวลผลดังกล่าวต้องสนับสนุนองค์ประกอบทางสถาปัตยกรรมที่ระบุไว้สำหรับ JVM java processoris รูปแบบการดำเนินการที่ดำเนิน JVM ในซิลิกอนที่จะดำเนินการ bytecodes java โดยตรงการประมวลผลจาวาสามารถปรับแต่งเป็นพิเศษเพื่อสิ่งแวดล้อม java โดยการให้การสนับสนุนฮาร์ดแวร์สำหรับคุณสมบัติเช่นการประมวลผลกอง multithreading และการเก็บขยะ จึงประมวลผลจาวาอาจจะสามารถมอบประสิทธิภาพการทำงานที่ดีมากสำหรับการใช้งานจาวากว่าโปรเซสเซอร์วัตถุประสงค์ทั่วไปการประมวลผลจาวาที่ดูเหมือนจะเป็นโดยเฉพาะอย่างยิ่งดีเหมาะสำหรับค่าใช้จ่ายที่ไวต่อการใช้งานคอมพิวเตอร์ที่ฝัง.
บางส่วนของเป้าหมายในการออกแบบที่อยู่เบื้องหลังคำนิยาม JVM จะให้พกพาความปลอดภัยและขนาดรหัสขนาดเล็กสำหรับโปรแกรมปฏิบัติการ ในนอกจากนี้ยังได้รับการออกแบบมาเพื่อลดความซับซ้อนของงานการเขียนล่ามหรือคอมไพเลอร์ JIT สำหรับการประมวลผลกลุ่มเป้าหมายที่เฉพาะเจาะจงและระบบปฏิบัติการแต่เป้าหมายในการออกแบบเหล่านี้ส่งผลให้เกิดลักษณะสถาปัตยกรรมเพื่อ JVM ที่ก่อให้เกิดความท้าทายที่สำคัญในการพัฒนาดำเนินงานที่มีประสิทธิภาพของหน่วยประมวลผลจาวา [โอคอนเนอร์และ Tremblay 1997] โดยเฉพาะอย่างยิ่งมีลักษณะทั่วไปบางอย่างของโปรแกรมจาวาที่แตกต่างจากการเขียนโปรแกรมภาษาแบบดั้งเดิมขั้นตอน ตัวอย่างเช่นการประมวลผลจาวาสแต็คจะใช้และต้องสนับสนุน multithreading และคุณสมบัติการจัดการหน่วยความจำที่ไม่ซ้ำกันของ JVM ลักษณะเฉพาะเหล่านี้แสดงให้เห็นว่าสถาปนิกในการประมวลผลจาวาต้องคำนึงถึงการนับความถี่แบบไดนามิกของคำแนะนำต่างๆเพื่อให้เกิดประสิทธิภาพสูง.
คำแนะนำ JV​​M ตกอยู่ในหลายประเภทคือโหลดท้องถิ่นตัวแปรและร้านค้า, โหลดหน่วยความจำและร้านค้าจำนวนเต็มและการคำนวณทศนิยมสาขาโทรวิธีการและผลตอบแทนการดำเนินงานกองและการสร้างวัตถุใหม่ รูปที่ 3 แสดงความถี่แบบไดนามิกของหมวดหมู่การเรียนการสอนต่างๆ JVM วัดใน programslinpack มาตรฐาน java, caffeinemark, Dhrystone, Symantec, jmark2.0,และ javaworld (รายละเอียดโปรแกรมมาตรฐานที่มีให้ในมาตรา 5) ความถี่การเรียนการสอนแบบไดนามิกเหล่านี้ได้รับโดย instrumenting ซอร์สโค้ดของ JVM ล่ามจำนวนครั้งที่ประเภทของแต่ละ bytecode กำลังดำเนินการ countthe ดวงอาทิตย์ 1.1.5
เท่าที่เห็นในรูปนี้คำแนะนำบ่อยที่สุดโหลดตัวแปรท้องถิ่น (ประมาณ 30 -. 47% ของคำสั่งทั้งหมดดำเนินการ)ซึ่งถูกดำเนินการย้ายออกจากพื้นที่ตัวแปรท้องถิ่นของสแต็คไปด้านบนของสแต็ค ความถี่สูงของแรงเหล่านี้แสดงให้เห็นว่าการเพิ่มประสิทธิภาพการโหลดในท้องถิ่นอย่างมากสามารถเพิ่มประสิทธิภาพ สายการและผลตอบแทนนอกจากนี้ยังมีค่อนข้างทั่วไปในโปรแกรมจาวา เท่าที่เห็นในรูปที่ 3 จะเป็นประมาณ 7% ของคำสั่งทั้งหมดดำเนินการ ด้วยเหตุนี้เพิ่มประสิทธิภาพการเรียกวิธีการและขั้นตอนการตอบแทนที่คาดว่าจะมีผลกระทบค่อนข้างมากในประสิทธิภาพการทำงานของรหัสจาวา ตั้งแต่สายการเกิดขึ้นผ่านกองประมวลผลจาวาควรจะมีการดำเนินการสแต็คที่มีประสิทธิภาพ
อื่นทำงานร่วมกันได้รับการสนับสนุนโดย JVM คือการดำเนินการพร้อมกันหลายหัวข้อ เช่นเดียวกับการดำเนิน multithreading ใด ๆหัวข้อมักจะต้องป้อนส่วนที่สำคัญของรหัสที่ตรงกันเพื่อให้สามารถเข้าถึงได้พิเศษร่วมกันกับวัตถุที่ใช้ร่วมกัน จึงประมวลผลจาวาควรให้การสนับสนุนทางด้านสถาปัตยกรรมสำหรับประเภทของการประสานนี้ หน่วยประมวลผลจาวายังต้องให้การสนับสนุนการจัดการหน่วยความจำผ่านทางกระบวนการเก็บรวบรวมขยะเช่นการติดแท็กฮาร์ดแวร์ของว​​ัตถุหน่วยความจำเช่น.
picojava-i [mcgham และโอคอนเนอร์ 1998; โอคอนเนอร์และ Tremblay 1997] เป็นหลักหน่วยประมวลผลที่รองรับการกำหนดสเปค JVM มันมีท่อ risc สไตล์รันชุดคำสั่ง JVM แต่เพียงคำแนะนำที่พบบ่อยที่สุดว่าส่วนใหญ่มีผลกระทบโดยตรงการทำงานของโปรแกรมจะดำเนินการในฮาร์ดแวร์บางคำแนะนำที่สำคัญที่มีความซับซ้อนพอสมควร แต่ประสิทธิภาพจะดำเนินการผ่านเฟิร์มแว คำแนะนำที่เหลือ aretrapped และเทิดทูนในซอฟต์แวร์โดยแกนประมวลผล การออกแบบฮาร์ดแวร์ง่ายจึงตั้งแต่ซับซ้อน แต่การดำเนินการนาน ๆ ครั้งคำแนะนำไม่จำเป็นต้องมีการดำเนินการโดยตรงในฮาร์ดแวร์.
ใน bytecodes java,มันเป็นเรื่องธรรมดาสำหรับการเรียนการสอนที่คัดลอกข้อมูลจากตัวแปรท้องถิ่นไปด้านบนของสแต็คที่จะนำการเรียนการสอนที่ใช้มัน picojava corefoldsthese สองคำแนะนำเป็นหนึ่งโดยการเข้าถึงตัวแปรท้องถิ่นโดยตรงและใช้มันในการดำเนินงาน การดำเนิน thisfolding เร่งดำเนิน java bytecode โดยการใช้ประโยชน์จากการเข้าถึงแบบสุ่ม singlecycle แคชกองการสนับสนุนฮาร์ดแวร์สำหรับการประสานให้กับระบบปฏิบัติการโดยใช้ต่ำลำดับ 2 บิตในวัตถุที่ใช้ร่วมกันเป็นธงในการควบคุมการเข้าถึงวัตถุ.
picojava-2 หลัก [turley 1997] ซึ่งเป็นผู้สืบทอดไปยังหน่วยประมวล picojavai , augments การเรียนการสอน bytecode ตั้งกับจำนวนของคำแนะนำขยายการจัดการแคชลงทะเบียนควบคุมและหน่วยความจำที่อยู่ที่แน่นอน คำแนะนำเหล่านี้ขยายมีวัตถุประสงค์เพื่อเป็นประโยชน์สำหรับโปรแกรมจาวาไม่ว่าจะทำงานเกี่ยวกับเรื่องนี้ที่สำคัญการดำเนิน java โปรแกรมทั้งหมด แต่ยังคงต้องมีการรวบรวมเพื่อ bytecodes java แรกตั้งแต่ bytecodes เหล่านี้เป็นชุดคำสั่งประมวลผลของพื้นเมือง ท่อจะขยายออกไปถึง 6 ขั้นตอนเมื่อเทียบกับ 4 ขั้นตอนในท่อ picojava-iในที่สุดการดำเนิน thefolding ขยายรวมตัวแปรท้องถิ่นสองเข้าแทนเพียงหนึ่ง.
ประมวลผลจาวาอื่น microjava ดวงอาทิตย์ 701 ไมโครโปรเซสเซอร์ [Sun Microsystems หน่วยประมวลผล microjava-701] มันขึ้นอยู่กับ picojava-2 หลักและได้รับการสนับสนุนโดยชุดของการพัฒนาซอฟต์แวร์และฮาร์ดแวร์เครื่องมือpsc1000microprocessor ​​รักชาติ [รักชาติ บริษัท วิทยาศาสตร์] เป็น 32 บิตสถาปัตยกรรมสแต็คที่มุ่งเน้นวัตถุประสงค์ทั่วไป ตั้งแต่ชุดคำสั่งที่คล้ายกับ bytecodes JVM, psc1000 มีประสิทธิภาพสามารถรันโปรแกรมจาวา
. ประมวลผลจาวาอื่นเสนอ [vijaykrishnan ตอัล 1998] ให้การสนับสนุนทางด้านสถาปัตยกรรมสำหรับการจัดการวัตถุโดยตรงกองการประมวลผลและสวดวิธีการเพื่อเสริมสร้างการทำงานของจาวา bytecodes สถาปัตยกรรมนี้จะใช้วัตถุที่อยู่เสมือน cachefor การจัดการที่มีประสิทธิภาพและการย้ายถิ่นฐานของวัตถุ สามแคชแคชตามแผนการ-thehybrid, แคช polymorphic ไฮบริดและไฮบริดสองระดับแคชได้รับการเสนอที่จะดำเนินการได้อย่างมีประสิทธิภาพวิธีการสวดเสมือนหน่วยประมวลผล usesextended foldingoperations คล้ายกับผู้ที่อยู่ใน picojava-2 หลัก นอกจากนี้ยังง่ายคำแนะนำการดำเนินการมักจะดำเนินการโดยตรงในฮาร์ดแวร์ในขณะที่คำแนะนำที่ซับซ้อนมากขึ้นไม่บ่อยนัก แต่จะดำเนินการผ่านทางจัดการกับดัก.
ประมวลผล ILP thejava [ebcioglu อีตัล1997] รันโปรแกรมจาวาบนเครื่อง ILP กับคอมไพเลอร์จาวา JIT ที่ซ่อนอยู่ภายในสถาปัตยกรรมชิป ครั้งแรกส่วนของรหัสจาวาจะถูกดำเนินการคอมไพเลอร์ JIT โปร่งใสแปลง bytecodes java เป็นวิทยาการที่ดีที่สุดสำหรับ risc คำสอนนานมาก (VLIW) สถาปัตยกรรมแบบขนานรหัส VLIW จะถูกบันทึกไว้ในส่วนของหน่วยความจำหลักไม่สามารถมองเห็นสถาปัตยกรรม java เวลาส่วนของจาวา bytecode มีการเข้าถึงสำหรับการดำเนินการแต่ละหน่วยความจำประมวลผลของการตรวจสอบเพื่อดูว่ารหัส ILP ที่เกี่ยวข้องมีอยู่แล้ว ถ้าเป็นแล้วการดำเนินการกระโดดไปยังตำแหน่งในหน่วยความจำที่รหัส ILP จะถูกเก็บไว้ มิฉะนั้นคอมไพเลอร์ถูกเรียกเพื่อรวบรวม java ส่วน bytecode ใหม่ในการประมวลผลสำหรับเป้าหมายที่จะดำเนินการแล้ว.
ขณะประมวลผลจาวาสามารถส่ง speedups ประสิทธิภาพการทำงานอย่างมีนัยสำคัญสำหรับการใช้งานจาวาพวกเขาไม่สามารถจะนำมาใช้อย่างมีประสิทธิภาพสำหรับการใช้งานที่เป็นลายลักษณ์อักษรในภาษาอื่น ๆ ถ้าเราต้องการที่จะมีประสิทธิภาพที่ดีขึ้นสำหรับการใช้งานจาวาและจะดำเนินการโปรแกรมที่เขียนในภาษาอื่น ๆ เช่นกันการประมวลผลจาวาจะมีการใช้ที่ จำกัด มีการใช้งานจำนวนมากที่เขียนด้วยภาษาอื่น ๆ ที่มีอยู่แล้วก็อาจจะเป็นที่พึงปรารถนาที่จะมีการประมวลผลเพื่อใช้งานทั่วไปที่มีลักษณะสถาปัตยกรรมการปรับปรุงเพื่อรองรับการทำงานได้เร็วขึ้นของการใช้งานจาวา.
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
3.3. Java โปรเซสเซอร์
speedup ประสิทธิภาพการทำงานของคอมไพเลอร์ JIT สามารถรวมได้ ตัวประมวลผลต้องรองรับสถาปัตยกรรมที่ระบุสำหรับ JVM Java การ processoris แบบจำลองการดำเนินการที่ใช้ JVM ที่ในซิลิคอนดำเนิน Java bytecodes โดยตรง สามารถปรับเพื่อสภาพแวดล้อม Java Java ตัวประมวลผล โดยให้การสนับสนุนฮาร์ดแวร์สำหรับคุณลักษณะเช่นการประมวลผลกอง มัลติเธรด และเก็บรวบรวมขยะ ดังนั้น การประมวลผลจาวาสามารถอาจส่งมากประสิทธิภาพสำหรับโปรแกรมประยุกต์ Java กว่าตัวประมวลผลวัตถุประสงค์ทั่วไป ประมวลผลจาวาจะ ถูกโดยเฉพาะอย่างยิ่งห้องพักเหมาะสมสำหรับต้นทุนสำคัญฝังระบบคอมพิวเตอร์ใช้งาน
ของเป้าหมายออกหลังนิยาม JVM ที่ให้พอร์ต ความปลอดภัย และขนาดเล็กรหัสในโปรแกรมปฏิบัติการ นอกจากนี้ มันถูกออกแบบให้ทำงานในการเขียนคอมไพเลอร์ JIT หรือการล่ามเป้าหมายเฉพาะตัวประมวลผลและระบบปฏิบัติการ อย่างไรก็ตาม ทำเป้าหมายเหล่านี้ออกแบบในสถาปัตยกรรมสำหรับ JVM ที่ก่อให้เกิดความท้าทายที่สำคัญในการพัฒนาดำเนินการมีประสิทธิภาพของตัวประมวลผลจาวา [โอและ Tremblay 1997] โดยเฉพาะอย่างยิ่ง มีบางลักษณะทั่วไปของโปรแกรม Java ที่แตกต่างจากภาษาเขียนโปรแกรมขั้นตอนดั้งเดิม ตัวอย่าง ตัวประมวลผลจาวาเป็นสแตก และต้องสนับสนุนมัลติเธรด และเฉพาะหน่วยความจำจัดการคุณลักษณะของ JVM ลักษณะเฉพาะเหล่านี้แนะนำว่า สถาปนิกของตัวประมวลผลจาวาต้องคำนึงนับความถี่แบบไดนามิกในชนิดคำแนะนำต่าง ๆ เพื่อให้ประสิทธิภาพสูงสุด
JVM แนะนำแบ่งออกเป็นหลายประเภท ได้แก่ โหลดตัวแปรท้องถิ่น และร้านค้า โหลดหน่วยความจำ และร้านค้า จำนวนเต็ม และทศนิยม หนึ่ง สาขา วิธีการโทร และการส่ง คืน กองปฏิบัติการ และการสร้างวัตถุใหม่ รูปที่ 3 แสดงความถี่แบบไดนามิกของ JVM คำประเภทต่าง ๆ ใน programsLinPack มาตรฐานจาวา CaffeineMark, Dhrystone, Symantec, JMark2.0 และ JavaWorld (เกณฑ์มาตรฐานโปรแกรมมีรายละเอียดในส่วน 5) ความถี่เหล่านี้สอนแบบไดนามิกได้รับ โดย instrumenting รหัสแหล่งที่มาของล่าม JVM ซัน 1.1.5 countthe จำนวนครั้งที่มีดำเนินการแต่ละชนิด bytecode.
ที่เห็นในรูปนี้ คำแนะนำบ่อย ๆ จะโหลดตัวแปรท้องถิ่น (เกี่ยวกับ 30–47% ของคำสั่งทั้งหมดที่ดำเนินการ), ที่ย้ายตัวถูกดำเนินการจากตัวแปรภายในพื้นที่ของกองด้านบนของกองซ้อน ความถี่สูงของโหลดเหล่านี้แนะนำให้ โหลดเฉพาะเพิ่มประสิทธิภาพสามารถมากเพิ่มประสิทธิภาพ วิธีการโทรและการส่งคืนก็ค่อนข้างทั่วไปในโปรแกรม Java เท่าที่เห็นในรูปที่ 3 พวกเขาเป็นประมาณ 7% ของคำสั่งทั้งหมดที่ดำเนินการ ดังนั้น เพิ่มประสิทธิภาพวิธีการโทร และกลับกระบวนการคาดว่าจะมีผลกระทบค่อนข้างมากเกี่ยวกับประสิทธิภาพของรหัส Java ตั้งแต่เรียกวิธีที่เกิดขึ้นผ่านกอง ตัวประมวลผลจาวายังควรมีการนำไปใช้อย่างมีประสิทธิภาพกอง
อื่นทั่วไปโดย JVM ดำเนินการเป็นการดำเนินการพร้อมกันหลายหัวข้อ เช่นเดียวกับการดำเนินการใด ๆ มัลติเธรด มักหัวข้อจะต้องใส่ส่วนสำคัญซิงโครไนส์ของรหัสจะแสดงถึงวัตถุที่ใช้ร่วมกันที่นั่น ดังนั้น การประมวลผลจาวาควรให้การสนับสนุนสถาปัตยกรรมสำหรับชนิดของการซิงโครไนส์ ตัวประมวลผลจาวาต้องการสนับสนุนสำหรับการจัดการหน่วยความจำผ่านขยะเก็บกระบวนการ เช่นฮาร์ดแวร์แท็กของวัตถุหน่วยความจำ เช่นกัน
PicoJava-ฉัน [McGham และโอ 1998 โอและ Tremblay 1997] เป็นหน่วยประมวลผลกำหนดหลักที่สนับสนุนข้อมูลจำเพาะ JVM มีไลน์แบบ RISC ที่ดำเนินการชุดของคำสั่ง JVM อย่างไรก็ตาม มีใช้เฉพาะคำแนะนำทั่วไปว่า ส่วนใหญ่การทำโปรแกรมโดยตรงผลกระทบในฮาร์ดแวร์ บางอย่างค่อนข้างซับซ้อน แต่ประสิทธิภาพการทำงานสำคัญคำแนะนำจะดำเนินการโดยใช้ microcode คำแนะนำที่เหลือ aretrapped และซอฟแวร์เลียนแบบใน โดยหน่วยประมวลผลหลัก การออกแบบฮาร์ดแวร์ดังนั้น ภาษาตั้งแต่ซับซ้อน แต่ขึ้นนาน ๆ ครั้งดำเนินการ คำแนะนำไม่จำเป็นต้องนำมาใช้โดยตรงในฮาร์ดแวร์
bytecodes ใน Java เป็นคำสั่งที่คัดลอกข้อมูลจากตัวแปรภายในด้านบนของกองซ้อนเพื่อนำคำสั่งที่ใช้ ทั่วไป คำแนะนำ corefoldsthese สอง picoJava เข้าถึงตัวแปรท้องถิ่นโดยตรง และใช้ในการดำเนินการ การดำเนินการ Thisfolding เพิ่มความเร็ว Java bytecode การดำเนินการ โดยประโยชน์ของการเข้าถึงแบบสุ่ม singlecycle แคชกอง ฮาร์ดแวร์สนับสนุนการซิงโครไนส์ที่ให้แก่ระบบปฏิบัติการ โดยใช้ใบสั่งต่ำ 2-บิตในวัตถุที่ใช้ร่วมกันเป็นธงเพื่อควบคุมการเข้าถึงวัตถุ
หลัก picoJava 2 [Turley 1997], ซึ่งเป็นการสืบเพื่อประมวลผล picoJavaI, augments คำ bytecode มีจำนวนคำแนะนำเพิ่มเติมเพื่อควบคุมการแคช ควบคุม การลงทะเบียน และหน่วยความจำเต็ม ขยายคำสั่งเหล่านี้มีวัตถุประสงค์เพื่อเป็นประโยชน์สำหรับโปรแกรมที่ไม่ใช่จาวาแอพลิเคชันที่รันบนหลักการดำเนินการนี้จาวา โปรแกรมทั้งหมด อย่างไรก็ตาม ยังจำเป็นต้องคอมไพล์กับ Java bytecodes ครั้งแรก ตั้งแต่ bytecodes เหล่านี้มีการประมวลผลชุดคำสั่งภาษา นี้จะขยายไปยังขั้นที่ 6 เปรียบเทียบกับขั้น 4 ในการ picoJava-ฉันไปป์ไลน์ สุดท้าย thefolding การดำเนินงานขยายรวมสองท้องถิ่นแปรหา แทนการเพียงหนึ่ง.
Java อีกตัวประมวลผลเป็นหน่วยประมวลผล microJava 701 อาทิตย์ [ซันไมโครซิสเต็มส์ MicroJava-701 ประมวล] มันขึ้นอยู่กับหลัก picoJava 2 และสนับสนุนชุดเครื่องมือพัฒนาซอฟต์แวร์และฮาร์ดแวร์ PSC1000microprocessor รักชาติ [รักชาติวิทยาศาสตร์ บริษัท] เป็นสถาปัตยกรรม 32 บิต กองเชิงวัตถุ เนื่องจากชุดของคำสั่งจะคล้ายกับ JVM bytecodes, PSC1000 สามารถมีประสิทธิภาพดำเนินโปรแกรม Java ได้
อื่นนำเสนอประมวลผลจาวา [Vijaykrishnan et al. 1998] ให้การสนับสนุนสถาปัตยกรรมการจัดการกับวัตถุโดยตรง กองประมวลผล และวิธีอาอ์เพื่อเพิ่มประสิทธิภาพการทำงานของ Java bytecodes สถาปัตยกรรมนี้ใช้ที่อยู่เสมือนวัตถุ cachefor มีประสิทธิภาพจัดการและย้ายวัตถุ โครงร่างตามแคสาม — thehybrid แค ไฮบริแค polymorphic และแคผสมสองชั้นซึ่งได้รับการเสนออย่างมีประสิทธิภาพใช้วิธีเสมือนอาอ์ การประมวลผล usesextended foldingoperations คล้ายกับในหลัก picoJava 2 คำแนะนำง่าย มักดำเนินการโดยตรงจะดำเนินในฮาร์ดแวร์ ขณะที่ซับซ้อนมากขึ้น แต่ไม่แนะนำจะดำเนินการผ่านตัวจัดการจับตัวยัง
TheJava ILP ประมวลผล [Ebcioglu etal ปี 1997] ดำเนินโปรแกรมประยุกต์ Java เป็นเครื่อง ILP ด้วยคอมไพเลอร์ Java JIT ที่ซ่อนอยู่ภายในสถาปัตยกรรมชิ ครั้งแรกที่ดำเนินการส่วนรหัส Java คอมไพเลอร์ JIT โปร่งใสแปลง Java bytecodes เป็นเพิ่มประสิทธิภาพนำ RISC สำหรับสถาปัตยกรรมแบบขนานมากยาวคำสั่ง Word (VLIW) รหัส VLIW จะถูกบันทึกในส่วนของหน่วยความจำหลักที่ไม่สามารถมองเห็นสถาปัตยกรรม Java ทุกครั้งที่เข้าถึงส่วนของ Java bytecode การดำเนินการ ตัวประมวลผลหน่วยความจำจะถูกตรวจสอบเพื่อดูว่า รหัส ILP สอดคล้องกันแล้ว ถ้าเป็น แล้วการกระโดดไปยังตำแหน่งในหน่วยความจำที่เก็บรหัส ILP อย่างอื่น คอมไพเลอร์ถูกเรียกต้องคอมไพล์ส่วน bytecode Java ใหม่ลงรหัสสำหรับประมวลผลเป้าหมาย ที่แล้วดำเนินการ
Java ในขณะที่โปรเซสเซอร์สามารถส่ง speedups ประสิทธิภาพการทำงานที่สำคัญสำหรับการใช้งาน Java พวกเขาไม่สามารถใช้ได้อย่างมีประสิทธิภาพสำหรับโปรแกรมประยุกต์ที่เขียนในภาษาอื่น ถ้าเราต้องการให้มีประสิทธิภาพดีสำหรับการใช้งาน Java และการเรียกใช้โปรแกรมประยุกต์ที่เขียนในภาษาอื่น ๆ เช่น ตัวประมวลผลจาวาจะใช้จำกัด มีหลายโปรแกรมที่เขียนในภาษาอื่นแล้วมี มันอาจจะต้องมีตัวประมวลผลวัตถุกับสถาปัตยกรรมขั้นสูงเพื่อสนับสนุนการดำเนินการเร็วของจาวาแอพลิเคชันได้
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
3.3 . รับความเร็วในการทำงานของโปรเซสเซอร์
Java คอมไพเลอร์ด่านอีป้องที่สามารถรวม โปรเซสเซอร์ดังกล่าวจะต้องรองรับความโดดเด่นทางสถาปัตยกรรมที่ระบุไว้สำหรับ jvm. ได้ Java ที่ processoris รุ่นการประมวลผลที่ว่าการดำเนินการของ Sun JVM แล้ว Control Panel ในซิลิโคนเพื่อดำเนินการ bytecodes Java โดยตรงโปรเซสเซอร์ Java สามารถปรับแต่งเป็นพิเศษเพื่อสิ่งแวดล้อม Java โดยให้การสนับสนุนฮาร์ดแวร์สำหรับคุณลักษณะเช่นการประมวลผลมัลติเธรดดิ้งซ้อนและการเก็บขยะ โปรเซสเซอร์จึง Java ที่สามารถให้ ประสิทธิภาพ การทำงานที่ดีขึ้นมากสำหรับแอปพลิเคชัน Java กว่าโปรเซสเซอร์ทั่วไปที่เป็นไปได้ว่ามีโปรเซสเซอร์ Java จะปรากฏขึ้นเพื่อเป็นอย่างดีเหมาะสำหรับแอพพลิเคชั่นการใช้งานคอมพิวเตอร์ราคาประหยัดที่สำคัญเอ็มเบ็ดเด็ด.
เป้าหมายการออกแบบที่อยู่เบื้องหลังความละเอียดของ Sun JVM แล้ว Control Panel ที่บางคนจะให้การรักษาความ ปลอดภัย และพกพาขนาดโค้ดขนาดเล็กสำหรับโปรแกรมที่ปฏิบัติการได้ นอกจากนี้ยังได้รับการออกแบบเพื่อลดความยุ่งยากซับซ้อนในการเขียนผู้เป็นล่ามหรือคอมไพเลอร์ด่านอีป้องสำหรับระบบปฏิบัติการและโปรเซสเซอร์เป้าหมายเฉพาะที่แต่ถึงอย่างไรก็ตามเป้าหมายการออกแบบนี้ส่งผลให้เกิดความโดดเด่นทางสถาปัตยกรรมของ Sun JVM แล้ว Control Panel สำหรับที่ก่อให้เกิดปัญหาอย่างมีนัยสำคัญในการพัฒนาการนำไปใช้งานอย่างมี ประสิทธิภาพ โปรเซสเซอร์ Java [ O ' Connor ผสมผสานและ tremblay 1997 ] ในลักษณะที่ไม่มีลักษณะทั่วไปของโปรแกรม Java ที่มีความแตกต่างกันจาก ภาษา การเขียนโปรแกรมวิธีดำเนินการแบบดั้งเดิม ยกตัวอย่างเช่นโปรเซสเซอร์ Java มีปล่องและต้องสนับสนุนคุณสมบัติการจัดการหน่วยความจำมัลติเธรดดิ้งและที่โดดเด่นของ jvm. ได้ คุณลักษณะที่เป็นเอกลักษณ์เหล่านี้ขอแนะนำให้สถาปนิกของโปรเซสเซอร์ Java ที่จะต้องนำไปพิจารณานับความถี่แบบไดนามิกชนิดของคำแนะนำต่างๆที่จะทำให้ ประสิทธิภาพ การทำงานในระดับสูง.
คำแนะนำของ Sun JVM แล้ว Control Panel ที่ตกอยู่ใน ประเภท หลาย ประเภท เช่นท้องถิ่น - ปรับเปลี่ยนจำนวนโหลดและจัดเก็บจำนวนหน่วยความจำและร้านค้าจำนวนเต็มและปรับขึ้นลงได้อิสระ - จุดการคำนวณสาขาการโทรและวิธีการส่งคืนการทำงานชุดใหม่และการสร้างวัตถุ. รูปที่ 3 แสดงความถี่แบบไดนามิกของ ประเภท ต่างๆของ Sun JVM แล้ว Control Panel คำแนะนำที่วัดใน programslinpack การวัด ประสิทธิภาพ Java ที่ caffeinemark dhrystone Symantec jmark 2.0และ javaworld (รายละเอียดโปรแกรมการวัด ประสิทธิภาพ ได้รับการจัดให้บริการในมาตรา 5 ). ความถี่การเรียนการสอนแบบไดนามิกเหล่านี้ได้โดย instrumenting ซอร์สโค้ดของผู้เป็นล่ามซึ่งแสงแดดของ Sun JVM แล้ว Control Panel 1.1.5 ไปที่หมายเลข countthe ครั้งแต่ละ ประเภท ของ bytecode ถูกประหาร.
ดังที่เห็นในรูปนี้คำแนะนำส่วนใหญ่จะเป็นจำนวนหลายระดับท้องถิ่น(เกี่ยวกับ 30-47% ของคำแนะนำทั้งหมดที่ดำเนินการ)ตัวดำเนินการซึ่งย้ายไปจากพื้นที่ตัวแปรท้องถิ่นที่กองไปที่ด้านบนของสแต็ก ความถี่สูงได้ในจำนวนนี้เสนอว่าการปรับยอดจำนวนในท้องถิ่นได้อย่างมากเพื่อเสริม ประสิทธิภาพ การทำงาน การส่งคืนและการโทรวิธีการยังค่อนข้างทั่วไปในโปรแกรม Java ดังที่เห็นในรูปที่ 3 เขาเป็นประมาณ 7% ของคำแนะนำทั้งหมดที่ถูกประหารชีวิต ดังนั้นการปรับแต่งขั้นตอนวิธีการการโทรและกลับไปที่คาดว่าจะมีผลกระทบต่อขนาดใหญ่ที่อยู่บน ประสิทธิภาพ ของรหัส Java นับตั้งแต่การโทรวิธีการมีขึ้นโดยผ่านทางปล่องที่โปรเซสเซอร์ Java ที่ยังควรมีการนำไปใช้งานสแต็กมี ประสิทธิภาพ การใช้งานทั่วไป
อื่นที่สนับสนุนโดยของ Sun JVM แล้ว Control Panel ที่มีการประมวลผลพร้อมกันของคำสั่งหลายชุด และด้วยการประมวลผลมัลติเธรดดิ้งใดๆเธรดจะต้องใช้เพื่อเข้าสู่เนื้อหาในส่วนที่มีความสำคัญแบบซิงโครไนซ์ของรหัสเพื่อจัดให้บริการการเชื่อมต่อที่ดีเยี่ยมทั้งสองฝ่ายมักใช้ร่วมกันกับสิ่งของ โปรเซสเซอร์จึง Java ที่ควรจะให้การสนับสนุนทางด้านสถาปัตยกรรมสำหรับ ประเภท นี้ในการซิงโครไนซ์ โปรเซสเซอร์ Java ที่จะต้องให้การสนับสนุนสำหรับการจัดการหน่วยความจำผ่านกระบวนการการเก็บขยะเช่นการใช้แท็กฮาร์ดแวร์ของวัตถุหน่วยความจำสำหรับตัวอย่างเช่น.
ยังpicojava - I [ mcgham และ O ' Connor ผสมผสาน 1998 O ' Connor ผสมผสานและ tremblay 1997 ] Core เป็นโปรเซสเซอร์สามารถปรับแต่งได้ซึ่งสนับสนุนข้อมูลจำเพาะของ Sun JVM แล้ว Control Panel ได้ โดยประกอบด้วยท่อส่งแทนที่ด้วย RISC - มีสไตล์ที่การดำเนินการตั้งค่าของ Sun JVM แล้ว Control Panel คำสั่ง อย่างไรก็ตามเฉพาะที่คำแนะนำทั่วไปมากที่สุดที่มากที่สุดโดยตรงส่งผลกระทบต่อการทำงานของโปรแกรมที่มีใช้ในฮาร์ดแวร์คำแนะนำปานกลางมีความซับซ้อนแต่ ประสิทธิภาพ สำคัญบางส่วนมีการนำผ่านไมโครโค๊ด คำแนะนำที่เหลือ aretrapped และ emulated ในซอฟต์แวร์โดยแกนหลักโปรเซสเซอร์ การออกแบบฮาร์ดแวร์ที่จึงทำได้ง่ายขึ้นเนื่องจากความซับซ้อนแต่นานๆครั้งจึงดำเนินการตามคำแนะนำไม่จำเป็นต้องเป็นโดยตรงได้นำไปใช้ในฮาร์ดแวร์.
ใน bytecodes Javaเป็นเรื่องปกติสำหรับการเรียนการสอนที่ข้อมูลสำเนาข้อมูลจากตัวแปรในท้องถิ่นเพื่อไปยังพื้นที่ด้านบนสุดของปล่องที่จะนำการเรียนการสอนที่ใช้ได้ picojava corefoldsthese ที่สองขั้นตอนในหนึ่งโดยการเข้าถึงแบบปรับได้หลายระดับในพื้นที่โดยตรงและการใช้ในการทำงานได้ การใช้งาน thisfolding ช่วยเร่งความเร็วในการทำงาน bytecode Java โดยการใช้ประโยชน์จากการเข้าถึงแบบสุ่ม singlecycle ที่ไปยังแคชสแต็กการสนับสนุนฮาร์ดแวร์สำหรับการซิงโครไนซ์ให้กับระบบปฏิบัติการโดยใช้ต่ำ - การสั่งซื้อ 2 - บิตในแบบใช้ร่วมกันมีวัตถุเป็น Six Flags ในการควบคุมการเข้าถึงที่วัตถุ.
ที่ picojava 2 Core [ turley 1997 ],ซึ่งเป็นผู้สืบราชสันตติวงศ์ใน picojavai โปรเซสเซอร์,เสี่ยงในรายละเอียดที่ bytecode ชุดคำสั่งที่มีจำนวนเพิ่มขึ้นตามคำแนะนำในการดำเนินการที่แคช, Control Register ,,และแอดเดรสหน่วยความจำอย่างแท้จริง. คำแนะนำเพิ่มเติมเหล่านี้มีวัตถุประสงค์ที่จะเป็นประโยชน์ต่อโปรแกรมแอปพลิเคชันไม่ใช่ - Java ที่รันบนคอร์ Java นี้ โปรแกรมแต่ถึงอย่างไรก็ตามห้องพักทั้งหมดยังจำเป็นต้องรวบรวมเพื่อ bytecodes Java เป็นครั้งแรกนับตั้งแต่ bytecodes เหล่านี้เป็นของโปรเซสเซอร์ชุดคำสั่งแบบเนทีฟ แนวท่อได้รับการขยายเวลาถึง 6 ขั้นตอนเมื่อเทียบกับ 4 ขั้นตอนที่อยู่ในไปป์ไลน์ picojava - Iสุดท้ายคือการทำงาน thefolding รับการขยายเวลาในการรวมถึงสองเข้าสู่ระดับท้องถิ่นเพียง one.processor Java
อื่นคือ microjava อาบแดดที่ 701 ไมโครโพรเซสเซอร์[ Sun Microsystems โปรเซสเซอร์ microjava -701 ]. โรงแรมคือที่ใช้ 2 หลัก picojava และได้รับการสนับสนุนโดยตั้งค่าให้เสร็จสมบูรณ์เครื่องมือในการพัฒนาซอฟต์แวร์และฮาร์ดแวร์ผู้รักชาติ PSC 1000 ไมโครโพรเซสเซอร์[ผู้รักชาติทางด้านวิทยาศาสตร์ Corporation ]ที่มีสถาปัตยกรรม Stack แบบ 32 บิตอเนกประสงค์ นับตั้งแต่ชุดคำสั่งที่มีความคล้ายคลึงกันมากกับของ Sun JVM แล้ว Control Panel ที่ bytecodes PSC 1000 สามารถเรียกใช้โปรแกรม java .
Java ที่เสนอโปรเซสเซอร์อื่น[ vijaykrishnan et al .ได้อย่างมี ประสิทธิภาพ 1998 ]ให้การสนับสนุนทางด้านสถาปัตยกรรมสำหรับการจัดการวัตถุโดยตรงการประมวลผล Stackต่อๆกันสร้างอ็อบเจกต์และวิธีการในการเพิ่ม ประสิทธิภาพ การประมวลผลของ bytecodes java . สถาปัตยกรรมนี้ใช้วัตถุแอดเดรสแบบเสมือนจริงที่การย้ายและการจัดการอย่างมี ประสิทธิภาพ cachefor ของวัตถุ แคชโครงสร้างสามแคชแบบ thehybrid แคชด้วยระบบไฮบริดที่แคชและไฮบริดสองชั้นที่มีการเสนอให้ได้อย่างมี ประสิทธิภาพ การใช้วิธีการต่อๆกันสร้างอ็อบเจกต์เสมือนได้โปรเซสเซอร์ usesextended foldingoperations เหมือนกับที่อยู่ใน 2 Core picojava ที่ นอกจากนั้นยังดำเนินการตามคำแนะนำที่เรียบง่ายเป็นระบบที่ถูกนำมาใช้ในฮาร์ดแวร์ในขณะที่ชุดคำสั่งมากขึ้นคอมเพล็กซ์แต่เกิดขึ้นไม่บ่อยนักจะดำเนินการผ่าน etal thejava ilp [ ebcioglu โปรเซสเซอร์จัดการ.
Trap ที่ต้องการได้โดยตรง1997 ],รันแอปพลิเคชัน Java บนเครื่อง ilp ที่พร้อมด้วย Java ด่านอีป้องคอมไพเลอร์ที่ซ่อนตัวอยู่ ภายใน สถาปัตยกรรมชิปได้ ในครั้งแรกที่ส่วนท้ายของรหัส Java จะถูกเรียกใช้งานคอมไพเลอร์ด่านอีป้องที่โปร่งใสจะแปลง bytecodes Java ที่เข้าไปในชนิดมูลฐานแทนที่ RISC ที่ปรับแต่งสำหรับการเรียนการสอนเป็นอย่างมากความยาวคำ( vliw )สถาปัตยกรรมแบบขนานรหัส vliw จะถูกบันทึกไว้ในส่วนของหน่วยความจำสำคัญที่ไม่สามารถมองเห็นได้ในสถาปัตยกรรม Java ในแต่ละครั้งที่แยกส่วนของ bytecode Java สามารถเข้าถึงได้สำหรับการประมวลผลหน่วยความจำของโปรเซสเซอร์จะได้รับการตรวจสอบเพื่อดูว่ารหัส ilp ที่เกี่ยวข้องจะมีอยู่แล้ว หากว่ามันเป็นอย่างนั้นมันก็จะประมวลผลจะข้ามกลับไปยังที่ตั้งอยู่ในหน่วยความจำซึ่งรหัส ilp จะถูกจัดเก็บ หรือมิเช่นนั้นแล้วคอมไพเลอร์ที่มีการปลุกเร้าขึ้นเพื่อรวบรวมสักเท่าไหร่ bytecode Java ใหม่เข้าไปในรหัสไว้สำหรับโปรเซสเซอร์เป้าหมายซึ่งจะถูกประหารชีวิต.
ในขณะที่โปรเซสเซอร์ Java สามารถให้ speedups ประสิทธิภาพ การทำงานอย่างมีนัยสำคัญสำหรับแอปพลิเคชัน Java จากนั้นก็จะไม่สามารถใช้งานได้อย่างมี ประสิทธิภาพ สำหรับแอพพลิเคชันเป็นลายลักษณ์อักษรใน ภาษา อื่นๆ หากเราต้องการจะมี ประสิทธิภาพ การทำงานที่ดีขึ้นสำหรับแอปพลิเคชัน Javaและในการรันแอปพลิเคชันบันทึกไว้ใน ภาษา อื่นๆรวมถึงโปรเซสเซอร์ Java จะเป็นการใช้งานจำกัด(มหาชน) ด้วยแอพพลิเคชันจำนวนมากเขียนใน ภาษา อื่นมีอยู่แล้วอาจเป็นที่พึงปรารถนาที่จะมีโปรเซสเซอร์ทั่วไปแบบตามวัตถุประสงค์พร้อมด้วยความโดดเด่นทางสถาปัตยกรรมเพื่อสนับสนุนการประมวลผลได้เร็วขึ้นของแอปพลิเคชัน Java .
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: