Courses in principles of digital computers usually begin with elementary logic circuits, proceed through increasingly complex ones, and often end with the design of a central processing unit. Such processors are typically simpler to explain than commercial microprocessors, but also often have very limited capabilities. The educational processor presented in this paper has a good balance between simplicity and capabilities. All its instructions, including multiplication and bit rotation, are executed in one clock cycle. The method of encoding and decoding instructions is quite simplified so that the encoding of instructions can be done even manually without tables, and the decoder unit is a simple forwarding of parts of the instruction word to the control bits of multiplexers. The processor is symmetric around the number 16: it has 16 three-operand instructions, 16 registers, each register is 16 bits wide, as well as the address and data bus. It is simulated at the logic gates level, a Verilog implementation on FPGA, and an emulated computer run by an implementation of a Forth interpreter written partly in its machine language.
A special type of integer programming, called binary or 0/1 programming, has a wide area of application, primarily in the field of scheduling. Two main approaches to this problem are simplex algorithm based branch and cut methods and optimized Boolean enumeration. Given the time complexity of the enumerative algorithm, it is useful to find ways to speed up the process. Intel x86 processors have registers and instructions that allow simultaneous operations on 16 or 32 data items. The paper describes experiences with the transformation of an algorithm into an assembly language in order to use these instructions to increase the algorithm speed.
Algorithms for solving Rubik’s cube have been an active research area since the first appearance of the cube in 1974. The challenge posed when solving the cube is to choose an algorithm that solves the cube for the minimum number of steps. Many algorithms are already implemented in software, but not many are tested with modern hardware-software methodologies, such as hardware-software co-design. Here, the challenge is to take into consideration limiting factors of hardware and implement the most efficient solution. In this paper, the hardware/software co-design is used to solve the random configuration of Rubik’s cube. Two algorithms are used: the Basic algorithm and the Kociemba algorithm. The Basic algorithm is easy to understand and implement but requires many more steps to solve the cube than the Kociemba algorithm. The Kociemba algorithm requires some pre-processing tasks, such as depth-first search and pruning trees, but can solve the cube in about 25 moves. Both algorithms are implemented and tested on a custom-made robot with mechanical parts, actuators, grippers and Intel’s DE1-SoC for drive control and implementation of solving algorithms. The robot successfully solved a number of random configurations. Performances (running time, number of moves needed for solving the cube) of both algorithms are measured and compared.
Creating school timetables is a problem whose complexity varies depending on school size and the requirements that occur in a model. The topic of this paper is related to schools that lack resources because they work in shifts and they are rarely discussed in literature. The first problem is the way the requirements are written. The paper deals with the XHSTT format and REDOSPLAT, a domain-specific language designed to set up timetable requirements. Another problem is the way a model is solved. We investigated the VNS and SVNS algorithms because they showed good results for this type of school. Their application on the actual test cases also revealed some interesting phenomena in formulating the requirements that can significantly affect the quality of the solution.
With this paper we presented architectural redesign of SOA (service oriented architecture) integration platform by following principles of microservices design. Presented SOA platform is currently in use for Real estate sector. Number of messages which need to be processed by platform is growing as well as number of new integrations which requires redesign of platform. Redesign should provide ability for scalability, better resource management, maintenance and deployment. To support this, it is necessary to transform integration platform to be microservices based.
Creating school timetables is problematic in many schools due to the complexity of models that need to be solved. If schools do not have enough resources (rooms, teachers), they are forced to work double or several shifts. This paper deals with shift types and ways to write them in formats used by computers to generate timetables automatically. Even though many schools work in shifts, the constraint to include shifts in creating timetables is rarely discussed in literature. This paper discusses a way to formulate school shifts using the XHSST format, a way to modify a domain specific language to support shifts, and an example of a way to modify the mathematical model of integer linear programming to support working in several shifts.
Computing the fractals can be time consuming if processed in sequential manner. Computing the fractals is iterative process so it can easily be transformed to run in parallel fashion. Since OpenCL supports parallel execution of code on both CPU and/or GPU, benchmarking and comparison the computation of Madelbrot by using OpenCL, can give insight on the speedup that modern parallel architectures have to offer. Results of these benchmarks and comparsions are given in this paper.
Although there are many attempts to engineer a domain specific language for the Internet of Things, most of them forget the fact that with the evolving of the Internet of Things, the end user will probably be a common person without an engineering or software development background. The designers of the UML had the same problem: how to make a language powerful enough for the professionals, but at the same time simple enough to be understood by a non-technical end user that gives the requirements. Inspired by this idea a Visual Domain Specific Modeling Language was developed for the IoT and proved that it is powerful enough for the professional and at the same time simple enough to be used by non-technical users.
Integer linear programming is a popular method of generating school timetables. Although computationally simpler, school timetabling is less developed area than university timetabling, because the models which resolve timetabling problems proposed thus far have been adjusted to individual cases differing from country to country. A proposed model meets most of constraints appeared in different school timetabling systems.
Ova stranica koristi kolačiće da bi vam pružila najbolje iskustvo
Saznaj više